【ExcelVBA】ファイルパス関連のあれこれ(1)

唯一新FileSystemObject

VBAデフォルトの関数や機能があるけど、結構汚くて使いたくない。

処理性能重視のクリティカルでない処理でなければ、FileSystemObjectを使うのが身のため。

 

(参考にさせていただきました)

Office TANAKA - Excel VBA FileSystemObject[目次]

 

相対パス → 絶対パス変換(realpath) 

Const relateivePath = "some"

Dim FSO As Object

Dim
absPath As String
Set FSO = CreateObject("Scripting.FileSystemObject") 
absPath = FSO.GetAbsolutePathName(relativePath)

Set
FSO = Nothing
 

ディレクトリ存在確認 

Set FSO = CreateObject("Scripting.FileSystemObject")
Target = "C:\Work\Sample.txt"
isDirectory = FSO.FolderExists(Target) 

よくDir()使えってあるけどこれすげー汚い関数。(はやいんだけどねー)

呼び出し元で使ってたファイル逐次読み出しがぶっこわれるので、そこそこの規模のアプリでは使いたくない。

Dim dirResult As String, path AsString

path = "c:\"

 

dirResult = Dir(path, vbDirectory)
isDirectory = (result <> "") 


(2016/07/13 記事のタイトル変えてファイル操作まとめにしました。)