• 締切済み

リストのダブルクリックイベントをフォーム起動時に発

アクセス2010です。 Private Sub Form_Load() Call lst_test_DblClick End Sub Private Sub lst_test_DblClick(Cancel As Integer) MsgBox "" End Sub このような事は出来ないのでしょうか? リストのダブルクリックイベントをフォーム起動時に発動したいのですが このコードを書くと Call lst_test_DblClick の部分で引数を省略できません。 になります。 どちらもフォームモジュールに書いています。

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

>リストのダブルクリックイベントをフォーム起動時に発動したいのです フォーム起動時に発動が狙いならば Private Sub Form_Load() End Sub

  • chie65535
  • ベストアンサー率43% (8507/19342)
回答No.4

以下のようにします。 Public Sub ListBox_DblClick_Main() '処理した中身はここに書く MsgBox "" End Sub Private Sub Form_Load() Call ListBox_DblClick_Main End Sub Private Sub lst_test_DblClick(Cancel As Integer) Call ListBox_DblClick_Main End Sub オブジェクトのイベントプロシージャルーチンを、他のVBAルーチンから直接呼び出してはいけません。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

ついでに、Private Sub Form_Load() のところで、以下のいずれかのCall を試してみてください。 Private Sub Form_Load() Call lst_test_DblClick(True) 'Call lst_test_DblClick(False) End Sub Private Sub lst_test_DblClick(Cancel As Integer) If Cancel = False Then MsgBox "Falseを引数に設定しています" Else MsgBox "Trueを設定しています" End If End Sub 何がしたいのかわからないので、答えようとして このようなところですが。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。本当は、何でもいいのですが。 Trueでも何らかの数値でも。 書き忘れです。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

何をしたいのかわかりませんが、 メッセージボックスを出すならば、 引数は以下のようにFalseをいれて、 Private Sub Form_Load() Call lst_test_DblClick(False) End Sub のようにすれば出てきます、メッセージボックスが。

関連するQ&A

  • フォームのイベントを標準モジュールから呼び出す

    フォームのイベントを標準モジュールから呼び出す事は出来ないのでしょうか? ちなみにアクセスです。 例えば、 Private Sub Form_Load() MsgBox "test" End Sub というのはフォームを開いたときにしか発生しないですよね。 でもフォームを開いている状態でForm_Loadと全く同じ事をしてほしい時は どうすればいいですか? 標準モジュールで Sub a() Call Form_フォーム1.Form_Load End Sub としてみましたが、メソッドまたはデータ メンバが見つかりません。 (Error 461)になりました。 MsgBox "test" だけなら、 Sub a() MsgBox "test" End Sub にすりゃいいじゃん!って思われがちですが、 実際はForm_Loadイベントにはたくさんのコードが書かれています。 標準モジュールからイベントの呼び出しを教えてください。

  • フォームを開く時のイベント処理

    Visual Basic 6.0 あるフォーム読込時イベント[Private Sub Form_Load()]で コマンドボタンにフォーカスを移動しようとしたら、エラーしてしましました。 Private Sub Form_Load() CommandButton.SetFocus ’プロシージャの呼び出し、または引数が不正です End Sub Form_Open や BeforeUpdate ? 開いた後にフォーカスをセット出来る イベント処理は無いでしょうか? ご教授願います。

  • フォームを作成すると同時にイベントを作成する方法は

    フォームを作成すると同時にイベントを作成する方法は? アクセスなのですが 標準モジュールで Sub フォームを作成() Dim myForm As Form Set myForm = CreateForm DoCmd.Close acForm, myForm.Name, acSaveYes End Sub をしたと同時に、 そのフォーム内に Private Sub Form_Open(Cancel As Integer) MsgBox "開きました" End Sub のようなイベントを同時に生成するにはどうすればいいでしょうか? クラスモジュールを使うのですか? クラスモジュールの使い方がまったくわからないのですが サンプルコードを頂けないですか?

  • Formオブジェクトについて

    Formオブジェクトに関する質問です。 ある関数にフォームオブジェクトを引数として渡してやりたいのですが、何かよい方法はありますでしょうか? 例) Private Sub cmdTest_Click(Index as Integer) Dim frm as Form If Index = 0 then Load_Test(Form 2) Else Load_Test(Form 3) End if End Sub Private Sub Load_Test(frm as Form) frm.Show frm.Label1.Caption = "TEST” End Sub

  • フォームを表示してからメッセージボックスを表示する

    メッセージボックスが表示される前に、フォームを表示させたいです。アクセスです。 ナビゲーションウインドウからフォームをダブルクリックしてフォームを開くのですが、 今のままだとメッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを表示してからメッセージボックスを表示するにはどうすればいいでしょう? Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" End Sub だと、先ほど述べたように、メッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを開いたときのイベントは複数あるようで、 Private Sub Form_Activate() MsgBox "Form_Activate" Debug.Print "Form_Activate" End Sub Private Sub Form_Current() MsgBox "Form_Current" Debug.Print "Form_Current" End Sub Private Sub Form_GotFocus() MsgBox "Form_GotFocus" Debug.Print "Form_GotFocus" End Sub Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" Debug.Print "Form_Open" End Sub Private Sub Form_Load() MsgBox "Form_Load" Debug.Print "Form_Load" End Sub をすると、 ・Form_Load ・Form_Activate ・Form_GotFocus ・Form_Open ・Form_Current の順に開きますが、やはりフォームが最後に表示されてしまいます。 どうにかして先にフォームを表示させる方法はないでしょうか? ご回答よろしくお願いします。

  • 標準モジュールにpublicで宣言するしかない?

    フォームモジュールと標準モジュールで同じ変数を使って値を行き来したい場合、 標準モジュールにpublicで宣言するしかないのでしょうか? 【フォームモジュール】 Private Sub cmd_コマンド0_Click() test = "aaa" Call 標準モジュールtest End Sub 【標準モジュール】 Public test As String Sub 標準モジュールtest() MsgBox test End Sub でいいのですか?

  • vbaで帳票フォームで開きたい アクセス

    vbaでフォームを開くときに 既定のビューを指定してるのですが 指定したとおりになりません。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム End Sub としてもデータシートビューで開かれてしまいます。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム MsgBox Me.DefaultView End Sub とすると、1が返るのに やっぱりデータシートビューになってしまいます。 なぜでしょうか? エラーにもなりません。

  • 複数フォームを1ボタンクリックで終了させる方法

    VB6.0 WindowsXP (症状) 複数フォームを1クリックで終了できずに困っています。 理由は他のフォームに移ったときにボタンの位置やテキストの内容を残しておきたい為にunloadさせずに、 Me.Hideだけでフォームを移動しているためだと思います。 終了のときは、下記のコードを用いて、終了させています。 標準モジュールに Public Sub sAllEnd() Dim myObject As Object For Each myObject In Forms Unload myObject Set myObject = Nothing Next End Sub をおいて、 各フォームには Private Sub Form_Unload(Cancel As Integer) Dim myResult As Integer myResult = MsgBox("終了します。" & vbCrLf & "よろしいですか?", vbOKCancel + vbQuestion, "終了確認") If myResult = vbCancel Then Cancel = True End If Call sAllEnd End Sub 終了メッセージのOKボタンを開いたフォームの枚数分だけクリックしないと終了できない状態です。 これを1クリックで終了できるようにするためにはどうしたら良いでしょうか? よろしくお願いします。

  • 複数フォームへのイベントの通知方法について

    Visual Basic2005にてプログラミングをしております。プログラミング初心者です。 以下、どなたかご教授いただけませんでしょうか? あるクラスを定義し、そのクラスの1つのインスタントがイベントを出した時に、 フォーム1~フォーム3の各Formにイベントを通知する様なプログラムを作成しております。 複数フォームへのイベントの通知方法として、以下の様なやり方は一般的に正しいのでしょうか? プログラムを実行させて見ると、動作上は何の問題もなく動いている様に見えますが、 プログラミング経験が少ない事もあり、以下のやり方が本当に正しいのかどうか、あまり自信が持てません。 どなたかご教授いただけると助かります。宜しくお願い致します。 =================================================================================== 'クラスA Public Class classA   Public Event StatusChange(ByVal status As Integer)   Public Event MassageOutput(ByVal message As String)   Private status As Integer   Private Sub EventReport1()       status = 5       'statusの変更を通知するイベントを生成させる       RaiseEvent StatusChange(status)   End Sub   Private Sub EventReport2()       'メッセージを通知するイベントを生成させる       RaiseEvent MassageOutput("メッセージを通知します")   End Sub End Class 'モジュール Module moduleA   Public myInstance As New classA End Module 'フォーム1 Public Class form1   Private WithEvents myInstance1 As classA   Public Sub New()       InitializeComponent()       myInstance1 = myInstance   End Sub   Private Sub StatusChange(ByVal message As String) _                Handles myInstance1.MassageOutput       TextBox1.Text = message   End Sub End Class 'フォーム2 Public Class form2   Private WithEvents myInstance1 As classA   Public Sub New()       InitializeComponent()       myInstance1 = myInstance   End Sub   Private Sub StatusChange(ByVal status As Byte) _                Handles myInstance1.MassageOutput       TextBox1.Text = status.ToString   End Sub End Class 'フォーム3 Public Class form3   Private WithEvents myInstance1 As classA   Public Sub New()       InitializeComponent()       myInstance1 = myInstance   End Sub   Private Sub StatusChange(ByVal status As Byte) _                Handles myInstance1.MassageOutput       TextBox1.Text = (status + 10).ToString   End Sub End Class ===================================================================================

  • フォームを開いた時にVBAでデザイン変更の許可の設

    フォームを開いた時にVBAでデザイン変更の許可の設定が出来ない(access2003) デザインビューで手作業で操作するのではなく VBAで値を設定したいのですが Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False End Sub をすると ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・  実行時エラー '2448':  このオブジェクトに値を代入することはできません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ と言うエラーが出てしまいます。 標準モジュールで Sub test() Form_フォーム1.AllowDesignChanges = False End Sub としても同じエラーが出ます。 フォームのデザイン変更の許可は デザインビューで手作業で操作するしかないのでしょうか?

専門家に質問してみよう