【VBA】Application.GetOpenFilename メソッド後ステップ実行できない対策

1月 10, 2023

【VBA】Application.GetOpenFilenameメソッド後ステップ実行できない対策 VBAのステップ実行でApplication.GetOpenFilename メソッド後ステップ実行できない現象を対策したい人、
VBAのステップ実行でApplication.GetOpenFilename メソッド後もステップ実行させたい人向けに書いています。
 

 本記事の内容

・VBAでApplication.GetOpenFilename メソッド後ステップ実行する方法
VBAのステップ実行でApplication.GetOpenFilename メソッドの後、ステップ実行ができずにすべての処理が一気に走る現象がおきます。
何も対策できなければApplication.GetOpenFilename メソッドの後のステップ実行はできません。
Application.GetOpenFilename メソッド後ステップ実行する方法を紹介します。  

 Application.GetOpenFilename メソッド後ステップ実行できない原因

別ファイルを開いたり、ダイアログを開いてOKを押したりすると、制御がVBEからWindowsへ移ってしまうのが原因です。
ステップインではなくそのままコードが走ってしまうことがあります。

Application.GetOpenFilename メソッド後ステップ実行する方法

対策は簡単です。以下の2つがあります。
・Application.GetOpenFilename メソッドの後にブレークポイントを設定する
・Application.GetOpenFilename メソッドの後にStopステートメントを入れる

Application.GetOpenFilename メソッドの後にブレークポイントを設定する

Application.GetOpenFilename メソッド後の処理コードにブレークポイントを設定するとそこで処理が停止します。
止めたいコードにカーソル移しF9を押せば、左端のグレーの部分に●が付いて、コードに色が付きます。左端のグレー部分をクリックでも設定できます。
コードが問題なく走っていればそこで止まりますので、そこからまたF8キーでステップ実行できます。

Application.GetOpenFilename メソッドの後にStopステートメントを入れる

以下のようにStopステートメント(黄色太文字部分)を入れてみてください。そこで処理がストップ(一時停止)します。
ここからまたF8キーでステップ実行できます。
  1. Sub FILE_OPEN()
  2.     Dim FileName As Variant
  3.     FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*")
  4.     
  5.     Stop
  6.     
  7.     If FileName = False Then
  8.        Exit Sub
  9.     End If
  10.     Workbooks.Open FileName
  11. End Sub
スポンサーリンク

まとめ

本記事ではApplication.GetOpenFilename メソッド後ステップ実行する方法を紹介しました。
最後までご覧いただきありがとうございました。

【ExcelVBA】ExcelシートデータをCSVファイルに出力する方法
【ExcelVBA】Excelシートを上部から順次処理する方法
も紹介していますので、もしよろしければこちらも御覧ください。

 

¥891 (2023/02/02 12:04時点 | Amazon調べ)
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)