小さい会社の1人SEの開発記というか奮戦記

  1. Excel
  2. 40788 view

指定したフォルダを開く【Excal VBA】

業務アプリケーションを組んでいるとバーコードを読み込んでそのデータから指定フォルダを開きたいという事がよくあります。今回は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の頃から変わらない構文が使えることに少し感動を覚えてしまいました。

黒画面に緑色の文字でプログラムしていた時代を思い出します・・・。

Excelの最近記事

  1. 日本語をエンコードする【Excel VBA】

  2. 商品コードなど長い数値だけの文字列を指数表示させない【Excel VBA】

  3. VBAで改行を指定する【Excel】

  4. 入力規則のプルダウン連携【Excel】

  5. 最短手順で計算式を保護する【Excel】

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する