質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • VBA

    1858questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Access

    456questions

    Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

access vba 起動時イベントプロシージャのデバックはどうやってやればよいか?

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 4,927

nekomura

score 124

よろしくお願いいたします。

厳密にはプログラミング自体の質問では無いかもしれませんが、
ご回答頂ければ幸いです。

現在、Access起動時に、毎回新規にリンクテーブルを再作成するといったような動作を期待したコードを、標準モジュールに書いています。
(事前準備として、マクロのアクションでプロシージャの実行を選択して、マクロ名を "AutoExec" として保存済み)

エラーが出ているので気になる箇所にブレークポイントを置いて
デバックをしたいのですが、動作させる為に一旦Accessを終了するので、確認しながら一行ずつデバックモードで動作させることが出来ません。

「access vba 起動時 イベント デバック やり方」などど
検索してみたのですが、希望する答えが見つからなかったのでここでお伺いすることにいたしました。

有職者の皆様、お知恵をお貸しください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+1

Stopを使うか、Debug.Assertを使うかだと思います。
こちらにAccessの環境はないのでExcel VBAで確認しましたが、以下で起動直後にデバッガで止めることができました。

① Stopを使う方法

Sub Auto_Open()
    Debug.Print "aa"
    Stop
    Debug.Print "bb"
End Sub


② Debug.Assert Falseを使う方法

Sub Auto_Open()
    Debug.Print "aa"
    Debug.Assert False
    Debug.Print "bb"
End Sub

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/19 10:41

    eripong様
    1,2双方のやり方で希望の箇所でコードがとまり、動作を確認しながら一行ずつコードを進めていくことが出来ました。
    今まで知らなかったやり方で、期待通りの結果で問題が解決出来ました。
    ありがとうございます。

    キャンセル

+1

accessは専門外ですが、VBAということなので。
標準のエディターをご利用ということならば実行コマンドが用意されています。
イベントでも実行させれば適切なタイミングでなくてもコードを回すことができます。

的外れな回答でしたら申し訳ありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/19 10:09

    syunjik様
    ご回答ありがとうございます。
    >実行させれば適切なタイミングでなくてもコードを回すことができます。
    ExcelVBAではそうしていたのですが、Accessではイベントを実行させないと動作確認が出来ないと思っていました。
    ご指南どおりにやってみたところ、ブレークポイントを置いておけばコード実行内容を確認することができました。
    ありがとうございます!

    キャンセル

+1

方法1:止めたいソースコードにブレークポイントをつけた状態で保存し、Accessを再起動する。
方法2:Accessを開いた後に、「全てのAccessオブジェクト」のマクロのグループに表示されているAutoExecマクロをダブルクリックで実行する。
方法3:VBエディタ画面側で対象のFunction内にカーソルがある状態で、実行(F5)する。


ちなみにSHIFTキーを押しながらAccess起動することで、AutoExecを実行せずにAccessを開くことができます。
方法2・3の場合など、起動時には処理させたくない場合にご利用ください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/19 11:13

    jawa様
    いつもお世話になっております。
    >SHIFTキーを押しながらAccess起動することで、AutoExecを実行せずにAccessを開くことができます。
    以前より、時折上司にこれを言われていたのですが、どういった理由なのか知らないままに行っていました。
    そういうことだったんですね、目からうろこでした。
    いつも、+アルファのご教示をありがとうございます!
    問題解決のみでなく、ひとつずつ知識も増えてとてもためになり、勉強になっています!

    キャンセル

0

Access起動中に該当するマクロを実行した場合にもエラーが発生しますか?
それとも、起動時の実行時のみにエラーが発生しますか?

Access起動中での実行時にもエラーが発生するようであれば、その際にデバッグ実行で検証してみると良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/19 09:59

    takyafumin様
    ご回答ありがとうございます。
    >Access起動中での実行時にもエラーが発生するようであれば、その際にデバッグ実行で検証
    はい、実行時にエラーが出るので、その通りにやってみます!
    初歩的な質問にお答え頂き感謝です。


    キャンセル

関連した質問

同じタグがついた質問を見る

  • VBA

    1858questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Access

    456questions

    Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。