スポンサーリンク
はじめに
今回は、Excel VBAで、指定したフォルダをエクスプローラで開くマクロ構文について書く。
これ単体のマクロで使うことなんてないだろうけど、逆に言えば他のマクロと組み合わせて使う機会はそれなりにあるので、テクニックメモ的な感じで書いておく。
サンプルマクロのソースコード
1 2 3 4 5 6 7 8 9 |
Sub openExplorer() 'フォルダをエクスプローラで開く Dim myPath As String '開くフォルダ名をここで指定。 myPath = "C:\tmp" If Dir(myPath, vbDirectory) <> "" Then Shell "C:\Windows\Explorer.exe " & myPath, vbNormalFocus 'フォルダを開く End Sub |
上記のコードは、「C:\tmp」の場所をエクスプローラで開くマクロの例。
Shellというコマンドで開いているけど、このShellコマンドについての細かい解説は割愛(私もそんなに分かってるわけじゃない)。
Dir構文
このソースコードで、もっと見ておきたいのは
Dir(myPath, vbDirectory)
というやつで、フォルダの存在チェックをしているところ。
このDir構文は、ファイルやフォルダに関し幅広い処理ができる、便利な構文だ。
それについて全部は解説しないけど、
Dir(myPath, vbDirectory)
で、2個めの引数vbDirectoryというのは、Directoryすなわちフォルダについてのチェックをするということ。
2個めの引数で、vbDirectory以外に使えるものは幾つかあるけど、実用的なものとしては
- vbNormal(標準ファイル)
- vbReadOnly(読み取り専用ファイル)
- vbHidden(隠しファイル)
などがある。
で、
Dir(myPath, vbDirectory)
は、myPathというフォルダがもし存在したら、今回の例で言えば「tmp」という答えを返す。
今回の例ではmyPathとは「C:\tmp」なわけで、その最後のフォルダ名「tmp」を返すというわけだ。
もしmyPath=「C:\tmp」という場所を探してみて、それが存在しなかった場合は、Dirは何もない文字(長さ0の文字列)を返す。
つまり今回の例で
If Dir(myPath, vbDirectory) <> “”
としているのは、myPathという場所を探してみて長さ0の文字列が返ってくるかどうか
→myPathという場所が存在するかどうかをチェックしているわけ。
もちろん、myPathの場所が存在しなかったら、処理を中断するってことね。
次回はちょっくら、このエクスプローラでフォルダを開く構文を使用した実用マクロを紹介する。
スポンサーリンク