【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 メソッドの後にStopステートメントを入れる
Application.GetOpenFilename メソッドの後にブレークポイントを設定する
Application.GetOpenFilename メソッド後の処理コードにブレークポイントを設定するとそこで処理が停止します。止めたいコードにカーソル移しF9を押せば、左端のグレーの部分に●が付いて、コードに色が付きます。左端のグレー部分をクリックでも設定できます。
コードが問題なく走っていればそこで止まりますので、そこからまたF8キーでステップ実行できます。
Application.GetOpenFilename メソッドの後にStopステートメントを入れる
以下のようにStopステートメント(黄色太文字部分)を入れてみてください。そこで処理がストップ(一時停止)します。ここからまたF8キーでステップ実行できます。
- Sub FILE_OPEN()
- Dim FileName As Variant
- FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*")
-
- Stop
-
- If FileName = False Then
- Exit Sub
- End If
- Workbooks.Open FileName
- End Sub
まとめ
本記事ではApplication.GetOpenFilename メソッド後ステップ実行する方法を紹介しました。最後までご覧いただきありがとうございました。
「【ExcelVBA】ExcelシートデータをCSVファイルに出力する方法」
「【ExcelVBA】Excelシートを上部から順次処理する方法」
も紹介していますので、もしよろしければこちらも御覧ください。
¥2,409 (2024/11/26 01:24時点 | Amazon調べ)
ポチップ
最近のコメント