• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBEが閉じてしまいます。)

なぜ一気に実行するとVBEが閉じてしまうのか?

このQ&Aのポイント
  • VBEを一気に実行すると、画面が閉じてしまう現象が発生します。しかし、ステップ実行(F8)を行うと画面は閉じません。
  • この現象の原因は、`Application.VBE.MainWindow.Visible = False`のコードにあります。このコードをコメントアウトすると、VBE画面は閉じませんが、該当のモジュールが実行後にアクティブになります。
  • Win8.1とAccess 2010の環境ではこの問題が発生します。一気に実行する場合、処理がスキップされることでVBEが閉じられるためです。

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

  • ベストアンサー
回答No.1

>DoCmd.OpenModule strModuleName ここで開いていますから >VBE画面は閉じませんが該当のモジュールが実行後にアクティブになります。 でしょうね。 >Application.VBE.MainWindow.Visible = False していてもデバッグモードというかステップ実行中は無視されているようです。 (確証はありません。) なので、 Sub Sample() Dim mdlName As String mdlName = "Module1" Debug.Print AllProcName(mdlName) End Sub Function AllProcName(ByVal strModuleName As String) As String Dim mdl As Object 'Module ※ Dim lngDecCnt As Long '宣言セクションの行数 Dim strName As String 'プロシージャ名比較用 Dim strProcName As String '全プロシージャ名 Dim lngR As Long 'プロシージャの種類 Dim i As Long 'DoCmd.OpenModule strModuleName 'Application.VBE.MainWindow.Visible = False Set mdl = Application.VBE.VBProjects.item(VBE.ActiveVBProject.Name).VBComponents(strModuleName).CodeModule 'Modules(strModuleName) ※ '宣言セクションの行数格納 lngDecCnt = mdl.CountOfDeclarationLines '最初のプロシージャ名格納 strName = mdl.ProcOfLine(lngDecCnt + 1, lngR) strProcName = strName & vbNewLine '宣言セクションの次行から最終行までループ For i = lngDecCnt + 1 To mdl.CountOfLines '新規プロシージャ名取得 If strName <> mdl.ProcOfLine(i, lngR) Then strName = mdl.ProcOfLine(i, lngR) 'プロシージャ名追加 strProcName = strProcName & strName & vbCrLf End If Next i Set mdl = Nothing AllProcName = strProcName End Function のようにしてみたら? ※印が変更点です。

tctrqzwplcg
質問者

お礼

回答頂きありがとうございました。

関連するQ&A