【Excelマクロ】ファイルのパス

Excelマクロ

パスの理解

VBAでファイルやフォルダを操作する際に、パス(Path)という考え方を理解しておくことが重要です。

普段パソコンを利用するだけでは、正直あまり馴染みがない言葉だと思いますが、VBAを使う中でファイルを操作するのであれば、必須の知識となります。

パスとは、ファイルやフォルダの「住所」のようなもので、そのファイルがコンピュータ内のどこにあるのかを示します。

例えば、「ドキュメントフォルダ内のファイル.xlsx」というExcelファイルのパスは、次のようになります。

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

このパスは、説明をすると次のような構造になっています。

  • Cドライブ 内の
  • Users(ユーザー)フォルダ の中にある
  • Username(使用者のフォルダ) の中の
  • Documents(ドキュメントフォルダ) にある
  • ファイル.xlsx というファイル

「¥」がある部分で次のフォルダに入っているとイメージするとわかりやすいです。

「¥」があるところで、そのフォルダを開けた、ということをイメージしてみましょう。

慣れないうちは少し複雑に感じるかもしれませんが、住所と同じように階層構造を理解すると分かりやすくなります。

パスの考え方:住所に例えると?

例えば、日本の住所では「新宿区」と言えば、多くの人が「東京都の新宿区」と理解できます。

もし、遠くの都道府県の「◯◯市」と言われた場合には、パッとどこの都道府県かわからないですよね?

それと同じように、パソコンのことを知っている方は、パソコンのファイルパスも「ドキュメントフォルダ」と言えば、「Cドライブのユーザーフォルダ内の自分のドキュメント」と分かります。

しかし、知らない人からすると「Cドライブ」の中にあるフォルダであることすら知らないかと思います。

ただし、Cドライブの・・・と書いてくれていると、誰がみても、Cドライブの中にあるんだな〜と知ることができます。

パソコンに指示を出す時にも、正式名称で指示を出すことで、特定のファイルを確実に指定する必要があります。

つまり、VBAではパスを正確に記述しないとエラーになるので正確に書く必要があります。

そのため、ドキュメントフォルダ内のファイルを指定する場合、以下のようにフルパス(省略せずに記載したパスのこと)を書く必要があります。

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

フォルダ内のファイルを指定する方法

例えば、ドキュメントフォルダの中に「1月」、「2月」というフォルダがあり、それぞれに「請求書.xlsx」がある場合、それぞれのファイルパスは以下のようになります。

C:\Users\Username\Documents\1月\請求書.xlsx
C:\Users\Username\Documents\2月\請求書.xlsx

このように記載することで1月フォルダの請求書.xlsx、2月フォルダの請求書.xlsxと正確に指定することができます。

しかし、毎回書くとなると、とても大変です。

パスを変数に入れて何度も利用する

パスが長くなると読みにくくなり、修正もしづらくなります。

そこで、パスを変数に入れることで何度も使えるようにすると、何度も繰り返し使う部分のパスが省略できるので、コードを短くすることができます。

変数を使った例

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月2月3月…といったフォルダ名が連続している場合、「繰り返し処理」を合わせて使うことで、よりスマートなコードを書けます。

繰り返し処理を利用した例

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月から12月までのフォルダに入っている請求書を順番に開く処理をすることができます。

まとめ

ファイルのパスとは、ファイルやフォルダの「住所」のようなもので、パソコンの中でどこにあるのかを示しているものです。このパスの構造を理解することで、VBAで正確にファイルを指定することができます。

フォルダ指定については、何度も繰り返し使う部分(フォルダパス)がある場合には、そこまでを変数に入れることで、「変数&ファイル名」とすれば、短いコードでファイルを指定することができます。

VBAでファイルを操作する際、パスの指定は避けて通れない重要な内容です。

最初は難しく感じるかもしれませんが、エクスプローラーのアドレスバーをクリックすると、今のフォルダのパスを見ることができるので、このパスを確認しながら慣れていきましょう!

コメント