make is.dev make it simple. development.
2024年11月28日

ファイルパス操作

EXCEL VBAでのファイルパス操作で、よく使うものチートシート。

使用環境

・Windows11
・EXCEL 2019

ブックファイルパス取得

Dim path As String
path = ThisWorkbook.path
VBA

取得出来るのはブックの所在のパスであって、ファイル名は含まれないので注意。

新規ブック(未保存)の場合は空文字が取得される。

ブックファイル名取得

Dim fileName As String
fileName = ThisWorkbook.name
VBA

新規ブック(未保存)の場合はブック名が取得される。

デスクトップパス取得

Dim wss As Object
Set wss = CreateObject("WScript.Shell")

Dim path As String
path = wss.SpecialFolders("Desktop")
VBA

Tempフォルダパス取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim path As String
path = fso.GetSpecialFolder(2)
VBA

パスからファイル名取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

' 「sample3.txt」を取得
Dim fileName As String
fileName = fso.GetFileName("C:\sample1\sample2\sample3.txt")
VBA

ファイル名から拡張子取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim extension As String
extension = fso.GetExtensionName("sample.txt")
VBA

ファイル名から拡張子以外を取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim baseName As String
baseName = fso.GetBaseName("sample.txt")
VBA

ファイルパスからフォルダパス取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

' 「C:\sample1\sample2」を取得
Dim path As String
path = fso.GetParentFolderName("C:\sample1\sample2\sample3.txt")
VBA

フォルダパスの親フォルダパス取得

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

' 「C:\sample1」を取得
Dim path As String
path = fso.GetParentFolderName("C:\sample1\sample2")
VBA