VBAのファイルパスの使い方|フルパスの構造・変数への代入・For〜Nextとの組み合わせ

VBAでファイルを開いたり保存したりするとき、必ず登場するのが「パス(Path)」という概念です。ファイルのパスとは、そのファイルがコンピュータのどこにあるかを示す住所のようなものです。

この記事では、パスの読み方・書き方の基本から、変数を使ったパスの管理方法、繰り返し処理との組み合わせまでを解説します。

ファイルのパスとは何か?

パスはフォルダの階層を ¥ でつないで表現します。たとえばドキュメントフォルダ内のExcelファイルのパスは次のようになります。

C:¥Users¥Username¥Documents¥ファイル.xlsx

左から順に「Cドライブ → Usersフォルダ → ユーザーフォルダ → Documentsフォルダ → ファイル.xlsx」という階層構造です。¥ が出てくるたびに1段階フォルダの中に入ったとイメージすると理解しやすいです。

VBAでは省略せずにこのようなフルパスで指定する必要があります。パスが間違っていると「ファイルが見つからない」エラーになります。

パスを変数に入れて使い回すには?

同じフォルダ内の複数ファイルを操作する場合、共通部分のパスを変数に入れておくとコードが短くなり修正も楽になります。

Dim f_path As String
f_path = "C:¥Users¥Username¥Documents¥"

' 1月フォルダの請求書を開く
Workbooks.Open f_path & "1月¥請求書.xlsx"

' 2月フォルダの請求書を開く
Workbooks.Open f_path & "2月¥請求書.xlsx"

共通部分を変数 f_path に入れておけば、フォルダ名だけを変えればどのファイルでも指定できます。保存先のパスが変わっても、変数の定義1か所を直すだけで済みます。

繰り返し処理と組み合わせてパスを自動生成するには?

フォルダ名が「1月」「2月」…と連番になっている場合は、For〜Next と組み合わせると12か月分を一気に処理できます。

Dim f_path As String
Dim i As Integer

f_path = "C:¥Users¥Username¥Documents¥"

For i = 1 To 12
    Workbooks.Open f_path & i & "月¥請求書.xlsx"
Next i

変数 i が1〜12と変化するたびに「1月¥請求書.xlsx」「2月¥請求書.xlsx」…と自動的にパスが生成され、12か月分のファイルを順番に開きます。

まとめ

  • パスはファイルの住所¥ で区切られた階層構造で表現される
  • VBAではフルパス(省略なし)で指定する必要がある
  • 共通部分のパスを変数に入れるとコードが短くなり修正も簡単になる
  • For〜Next と組み合わせると連番フォルダのパスを自動生成できる
  • エクスプローラーのアドレスバーをクリックすると現在のフォルダのフルパスをコピーできる

よくある質問

パスに日本語(フォルダ名・ファイル名)は使えますか?

使えます。ただし環境によっては文字化けやエラーが起きる場合があります。特に共有フォルダやサーバーパスで問題が出やすいため、英数字のパスにできる場合はその方が安全です。

自分のユーザー名が変わるとパスが使えなくなりますか?

なります。ユーザー名が含まれるパスはPCが変わると動かなくなります。Environ("USERPROFILE") を使うと現在のユーザーのパスを動的に取得できるため、可搬性が高いコードになります。

ブックと同じフォルダのパスを取得するには?

ThisWorkbook.Path でマクロが入っているブックのフォルダパスを取得できます。ファイルを同じフォルダに集めておけば、パスをハードコードせずに済みます。

パスにスペースが含まれていてもいいですか?

VBAのコード上は問題ありません。ただし一部の処理でスペースが原因でエラーになることがあります。フォルダ名・ファイル名にスペースを使わないようにしておくのが安全です。

フォルダが存在するかどうかを事前に確認できますか?

できます。Dir(フォルダパス, vbDirectory) <> "" でフォルダの存在確認ができます。存在しない場合に MkDir でフォルダを作成してから処理するパターンがよく使われます。


動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール