FSOオブジェクトの活用:フォルダパスを取得したい時
VBAでExcelなどを使うにあたって必ず覚えたほうがいいオブジェクトが
FileSystemObjectオブジェクト (ファイルシステムオブジェクト=FSO)
だと私は思っている。
では、このFSOオブジェクトはどういうものかというと、
- フルパスからフォルダ名取得
- フルパスからファイル名取得
- フォルダ・ファイルの存在有無チェック
- フォルダ・ファイルのコピーor削除
- フォルダ・ファイルの移動
・・・などができちゃうオブジェクト!これはすごい。
もちろん、オブジェクトだけでこれらができるのではなく、全てそれぞれにメソッドがありそれを利用することで実現可能になる。
それでは、それぞれどんなふうに使うのかを紹介していく。
フルパスからフォルダ名だけを取得
【やりたいこと】
フルパスからフォルダ名だけを取得したい。
例:
C:\VBA勉強\sample.txt
ここからフォルダ名だけを取得したい。
つまり、欲しい結果は「C:\VBA勉強\」である。
【コード】
Option Explicit
Sub fso_test()
Dim folderpath As String
Dim fso As New FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
folderpath = "C:\VBA勉強\sample.txt"
MsgBox "folderpath:" & fso.GetParentFolderName(folderpath)
Set fso = Nothing
End Sub
これは便利。ただ、注意点がある。
【注意点】
FSOオブジェクトを使う時、もし参照設定をしていなかったら

このようなエラーが出てくることがある。
これは「参照設定」をしていないせいである。
なので、こういうエラーが出てきた場合は以下の手順で参照設定をすればOKだ。


ここで、もし「Microsoft Scripting Runtime」が見当たらない場合は下の方を見ていけば見つかるので、焦らずに探していくと良い。
見つかればチェックを入れてOKを押すだけである。
それでは、一度やってみよう。きっと、うまくいく。
ディスカッション
コメント一覧
まだ、コメントがありません