業務アプリケーションを組んでいるとバーコードを読み込んでそのデータから指定フォルダを開きたいという事がよくあります。今回はVBAからエクスプローラー経由で指定フォルダを開く手順をまとめます。
コンテンツ
条件整理
セルC3に読み込んだバーコードデーターで指定したサーバーの共有名直下のバーコードデータと合致するフォルダを開きます。
バーコードデータ | Range(“C3”).Value |
---|---|
サーバー名 | SERVER_01 |
共有名 | FOLDER_01 |
エクスプローラフルパス | “C:\Windows\Explorer.exe “ |
処理のポイント
- Dirコマンドでフォルダーの有無を検索
- MkDirコマンドで指定フォルダーが無い場合はフォルダーを作成
- Shellコマンドでエクスプローラを起動
作成したプログラム
Sub OpenExplorer() ' フォルダをエクスプローラで開く Dim TXT_PATH As String '開くフォルダ名 TXT_PATH = "\\SERVER_01\FOLDER_01\" & Range("C3").Value If Dir(TXT_PATH, vbDirectory) = "" Then MkDir TXT_PATH MsgBox "指定したフォルダを作成しました。" End If Shell "C:\Windows\Explorer.exe " & TXT_PATH, vbNormalFocus 'フォルダを開く End Sub
以下解説です。
If Dir(TXT_PATH, vbDirectory) = “” Then
Dir で引数にフォルダフルパスとvbDirectoryを指定すると最下層のフォルダ名が返されます。よって、””が返されると言う事は「そのフォルダが存在しない」という判定になります。
MkDir TXT_PATH
無いフォルダを開きに行くとエラーになりますのでMkDirコマンドで引数のフォルダを作成します。
Shell “C:\Windows\Explorer.exe ” & TXT_PATH, vbNormalFocus
Shellコマンドで引数に指定したフォルダをエクスプローラで開きます。プログラムはフルパスで記述する様にしましょう。vbNormalFocusで通常起動します。
まとめ
フォルダのチェックや作成は、MS-DOSの頃から変わらない構文が使えることに少し感動を覚えてしまいました。
黒画面に緑色の文字でプログラムしていた時代を思い出します・・・。
この記事へのコメントはありません。