• ベストアンサー

(Access)VBA デバックの仕方について

スレッド違いかもしれませんが、プログラムの事なのでこちらに質問させて頂きます。 (アクセス)フォームに作成した【ボタン】にクリック時イベントをVBAコードで記入しました。 Private Sub コマンド0_Click() MsgBox "a" End Sub ・コンパイルして上書き保存。 ・実行時エラーがないか、F5ボタン(sub ユーザーフォームの実行) すると、マクロをクリック時イベントに貼り付けた訳でもないのに、【マクロボックス】が表示されて、デバックできません。 【質問】 (1)そもそも上記のようなコードの場合、デバックするにはわざわざフォームに戻って、コマンド0をクリックしてチェックしないといけないのでしょうか? (2)また、F5ですぐにプログラムが実行される時と、マクロボックスが表示される場合と有りますが、どのいう時にそれぞれのパターンに分かれていくのでしょうか? VBAまだまだ初心者なので、かなり混乱しています。 どなたか、ぜひ、ご指南よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

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

その他の回答 (1)

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

(1) 基本的にはそうだろうと思う。 privateを取ればイミディエイトウィンドウで、 forms("フォーム1").コマンド0_Click で実行できる。 (2) 標準モジュールのsubならF5で実行できるが、フォームのモジュールにあるsubはF5では実行できない。 標準モジュールにあっても、引数があるものは実行できない (例:sub test(a as integer)など) ちなみにfunctionも同様。

関連するQ&A

  • アクセスVBAのエラーについて

    フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?

  • PowerPoint VBAコマンドボタンでのマクロ

    PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。

  • Access VBAで

    VBAの超初心者です。 Accessのフォームでコマンドボタンを押すと、決まった文字が入力できるフォームを作りたいと思っています。 クリック時のイベントプロシージャーはどのように記入すればよいのでしょうか。 ど素人な質問ですみません。

  • マクロのデバックの仕方

    マクロ初心者です デバックの仕方がよくわかりません イベントマクロでエラーが出て デバックの途中でどうにもいかなくなったので右上の「×」でデバックを終了すると それ以後イベントマクロが実行されません いままでデバックはいつも「×」で終了していたのですけど、やっぱり駄目なの?

  • ACCESS VBAで別のプロシージャを呼びだした後

    いつもお世話になります。 ACCESS VBAで、別のプロシージャを呼びだし、 フォームを開き、あるコマンドボタンをクリックすると、 もとに戻ってくるようにしたいのですが、 call で別のプロシージャを呼びだし、フォームを開くところまではうまくいくのですが、コマンドボタンをクリックする前に戻ってきてしまいます。 コマンドボタンにはイベントプロシージャを設定しているのですが、 それではダメなんですよね? どのようなコードになるのでしょうか?よろしくお願いします。

  • コマンドボタンにマクロを登録させる方法

    エクセルでマクロを作成しました。マクロを実行させる為に「コントロールツールボックス」にある「コマンドボタン」で作ったボタンに登録をしたいのですがうまくいきません。 以前はコマンドボタンを作ったら、自動的に「マクロの登録」ダイアログボックスが出てきたのですが、何故か出なくなってしまいました。オートシェイプで作成したボタンなら、右クリックすると「マクロの登録」があるのですが、コマンドボタンを右クリックしても「マクロの登録」がありません。以前のように、自動的に「マクロの登録」ダイアログボックスを表示させる方法があったら教えてください。 また、ボタンをダブルクリックするとVBAが開いて以下のようなコードの記載がありますが、ここにコードを記載すればボタンをクリックしたときにマクロが実行されるのでしょうか?VBAはまったく解りませんので、どのように記載したらいいのかわかりません。実際に記入して教えてください。お願いします。マクロ名は、日本語で「結果一覧」としました。(「Private Sub CommandButton1_Click()」と「End Sub」の間に、マクロの記述部分をコピーして、貼り付けたら、ボタンをクリックしたときにマクロは実行できたのですが、もっと簡単にマクロ名を記述したら実行できるような気がするのですが、簡単に記述して実行できる方法があったら教えてください。) OSはWindows ME、Excelは2002 です。よろしくお願いします。 コマンドボタンをダブルクリックしたときのコードです。 Private Sub CommandButton1_Click() End Sub

  • エクセルVBAの質問です。

    こんばんわ! エクセルVBAのユーザーフォーム上のテキストボックス等をマクロを実行した状態で、動かしたりしたいのですが、可能でしょうか? 具体的には、コマンドボタン1をクリックすると、テキストボックス等を移動したりできるようにしたいです。 参考URL、あるいは方法があればご教授お願いいたします。

  • VBAでのUSERFORMの表示に関して

    現在VBAでUSERFORMを使うプログラムを作成中です。 ボタンやボックスなどを設置してコードを書いてという作業は良いのですが、 このプログラムを実践で使用する時に毎回以下の手順を踏んでいます。 1.該当のエクセルファイルを開く 2,AltとF11を押す 3.左側のVBAプロジェクトからフォームの中の使用したいフォームをクリック 4.F5をクリック ここまでしてやっと作成したプログラムを走らせる事ができますが、 毎回毎回上記の1から4の作業が必要な訳ではないですよね? エクセルファイルを開いた瞬間に希望するフォームが出て、 すぐに作業を実行するにはどうしたらよいのでしょうか?

  • 他のフォームのイベントを起動させる方法

    アクセスです。 Fログイン_サブフォーム と言う名前のフォームがあり、 そのフォームの中には、 cmd_ログインする と言うコマンドボタンがあります。 cmd_ログインするのクリックイベントでは フォームモジュールのcmd_ログインする_Clickに記載されたたくさんのコードがあります。 新たにフォーム1を作り、コマンドボタンを押下すると、 Fログイン_サブフォームのcmd_ログインする_Clickを実行させるにはどうすればいいでしょうか? フォーム1のフォームモジュールの Private Sub コマンドボタン_Click() で、 Call Fログイン_サブフォーム!cmd_ログインする_Click としましたが、 VBAを実行する前に、コンパイルエラーになります。 Fログイン_サブフォーム!cmd_ログインする_Click としてもダメです。 フォームから同じプロジェクト内の他のフォームのイベントを起動させる方法を教えてください。 よろしくお願いします。

  • VBAのプロパティウィンドウについて

    VBAでプロパティウィンドウには ・Microsoft Excel Object ・フォーム ・標準モジュール があります。 ところで、下のプログラムですが、(1)の部分を標準モジュールに書き込み、フォームにあるコマンドボタンをクリックしたら、"test.xls"が表示されます。 しかし、(1)の部分をMicrosoft Excel Object のsheet1(sheet1)のコードに書き込み、プログラムを実行させると、フォームのコマンドボタンをクリックしても"test.xls"は表示されません。 これはなぜですか? (1)の部分のコマンドボタン1はsheet1に存在します。 (1)----------------------------------- Private file_name as string Private Sub CommandButton1_Click()   file_name="test.xls" UserForm1.Show End Sub (1)----------------------------------- フォーム Sub CommandButton1_Click() MsgBox file_name End Sub

専門家に質問してみよう