dポイントプレゼントキャンペーン実施中!

スレッド違いかもしれませんが、プログラムの事なのでこちらに質問させて頂きます。

(アクセス)フォームに作成した【ボタン】にクリック時イベントをVBAコードで記入しました。

Private Sub コマンド0_Click()
MsgBox "a"
End Sub

・コンパイルして上書き保存。
・実行時エラーがないか、F5ボタン(sub ユーザーフォームの実行)

すると、マクロをクリック時イベントに貼り付けた訳でもないのに、【マクロボックス】が表示されて、デバックできません。

【質問】
(1)そもそも上記のようなコードの場合、デバックするにはわざわざフォームに戻って、コマンド0をクリックしてチェックしないといけないのでしょうか?

(2)また、F5ですぐにプログラムが実行される時と、マクロボックスが表示される場合と有りますが、どのいう時にそれぞれのパターンに分かれていくのでしょうか?

VBAまだまだ初心者なので、かなり混乱しています。
どなたか、ぜひ、ご指南よろしくお願いします。

A 回答 (2件)

VBAあたりの簡単な例では


(1)F5で実行できる普通のSUBプロ
(2)引数を使うSUBプロ
(3)イベントで実行されるイベントプロ
(4)SUBプロの中に書いて実行の流れの中のFunctionプロ
があると思う。
(1)はそのまま実行できるが、
(2)はSUBプロの中に書いて、引数の値が与えられて実行の流れの中にあること
(3)は実際イベントを起す必要がある。そのフォームなどコンテナが表示されて、そこにコントロールが表示され、普通は人手によるマウスの動作が必要。プログラムによるイベントの励起はVBAを超える範疇。
(4)はSUBプロの中に書いて実行の流れの中にあること
が必要と思う。
OSから渡してもらう、プログラムの実行権という(コントロールというか)問題を良く考え・勉強しないといけないと思う。
    • good
    • 0

(1)


基本的にはそうだろうと思う。
privateを取ればイミディエイトウィンドウで、
forms("フォーム1").コマンド0_Click
で実行できる。

(2)
標準モジュールのsubならF5で実行できるが、フォームのモジュールにあるsubはF5では実行できない。
標準モジュールにあっても、引数があるものは実行できない (例:sub test(a as integer)など)
ちなみにfunctionも同様。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!