【VBA】ファイル名を取得する【シンプル】

VBAで
 ・ファイル名を取得
できます!

ここでは
 ・私が可読性が良いと考える方法
を記載します!
※実現方法は複数あります。
※可読性が良い方法を知っておけばよいです。

PR

VBAコード

ここでは例として
 ・パス「C:\Users\user\Desktop\aiueo.txt」の
 ・ファイル名を取得
します。
※ファイル名である「aiueo.txt」を取得します。

ファイル名「aiueo.txt」
ファイル名「aiueo.txt」
Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim filePath As String
    Dim fileName As String
    
    'ファイルのパスを指定
    filePath = "C:\Users\user\Desktop\aiueo.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイル名を取得
    fileName = fso.GetFile(filePath).Name
    
    MsgBox ("ファイル名 : " & fileName)
    
    '後片付け
    Set fso = Nothing
    
End Sub

「FileSystemObject」の「GetFile」メソッドにより、「Fileオブジェクト」を取得します(15行目)。

「Fileオブジェクト」の「Name」プロパティにより、「ファイル名」を取得します(15行目)。

PR

実行結果

ファイル名を取得できました。
※ファイル名「aiueo.txt」を取得できました。

実行結果
実行結果
PR

備考(Dir関数について)

「Dir関数」でもファイル名を取得できます。

Option Explicit

Sub sample()
    
    Dim filePath As String
    Dim fileName As String
    
    'ファイルのパスを指定
    filePath = "C:\Users\user\Desktop\aiueo.txt"
    
    'ファイル名を取得
    fileName = Dir(filePath)
    
    MsgBox ("ファイル名 : " & fileName)
    
End Sub

ただ私はDir関数は可読性が良くないと考えるため、オススメしません。
Dir関数を知らない人は「Dir(“フルパス”)」から「ファイルを取得」していることを推測できません。

「Fileオブジェクト」の「Name」プロパティの方が可読性が良いと考えるため、オススメします。
※「Fileオブジェクト」の「Name」プロパティ(という英単語)ならば、「ファイル名を取得」していることを推測できます。

PR

参考①

マクロを実行しているExcelファイル(ブック)のファイル名を取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

ファイル名の拡張子のみを取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

指定したフォルダ配下のファイルの一覧を取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「FileSystemObject」の「GetFile」メソッド


●「Fileオブジェクト」の「Name」プロパティ

タイトルとURLをコピーしました