目次
使用環境
- OS:Windows 10 Pro(バージョン:20H2)
- ソフト:Microsoft Excel VBA
経緯
VBAを使ってデータを抜き取るプログラムを作成している中で、
抜き取ったデータだけでなく、元ファイルのファイル名も取得したい場面がありました。
そこで今回は、**FileSystemObject(FSO)**を使ってファイル名を取得する方法について学びました。
解決方法:「fso.GetFile」を使う
ファイル名を取得するために、**fso.GetFile
**メソッドを使用しました。
コード例
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim f As File
Set f = fso.GetFile("C:\Users\morinokabu\デスクトップ\test.txt")
Dim s As String
s = f.Name
Set fso = Nothing
コード解説
- 1行目:FileSystemObject型の変数
fso
を宣言します。 - 2行目:
fso
に新しいFileSystemObjectのインスタンスを代入します。 - 3行目:File型の変数
f
を宣言します。 - 4行目:指定したファイルパスからファイル情報を取得し、
f
にセットします。 - 5行目:ファイル名を格納するためのString型変数
s
を宣言します。 - 6行目:ファイル名(例:「test.txt」)を
s
に格納します。 - 7行目:使用したFileSystemObjectを破棄し、メモリを解放します。
この流れにより、指定したファイルパスからファイル名のみを簡単に取り出すことができます。
この後の展開
今後の応用として、
- 取得したファイル名をセルに書き込む
- ファイル名から拡張子を除外して使用する
- ファイル名を元にデータの管理や分類を行う
といった実用的な使い方ができるようになります。
特に複数ファイルを一括処理する場合などには非常に便利な技術となりますので、さらに活用方法を広げていきたいと考えています。
まとめ
VBAでファイル名を取得するには、FileSystemObjectを使い、GetFile
メソッドからファイル名プロパティを呼び出すのが有効な方法です。
基本を押さえたうえで、今後はさらに応用的な操作にも挑戦していきたいと思います。
ここまでお読みいただき、誠にありがとうございました。