「【コード】フォルダパスからフォルダ名を取得するWordマクロ」、「【コード】フォルダパスからフォルダ名を取得するWordマクロ(その2)」の続きです。
最初の記事を書いたときに、きぬあささんからいろいろ教えていただきまして、せっかくなので紹介いたします。
すでにかなり時間がたっていまして、リアルタイム感が全くありませんが(笑)。
<目次>
このマクロでできること
フォルダパスから、フォルダ名を取得します。
前回のマクロと同じです。
マクロ1の解説
FileSystemObjectを使っています。
これを使うと、フォルダ名を取得できます。
やっぱりあるんだ。
前回記事を書いたときには、調査不足でした。
最初に指定するフォルダパス(myFolderPath)は、実在するものでないといけません。
【コード】フォルダパスからフォルダ名を取得するWordマクロ(その2)のような単純な文字列の操作であれば、フォルダパスは実在しなくてもいいのですが。
マクロ1
Sub フォルダパスからフォルダ名を取得3() Dim FSO As Object Dim myFolderPath As String 'フォルダのパス Dim myFolderName As String 'フォルダ名 myFolderPath = "D:\Users\新田 順也\Dropbox" Set FSO = CreateObject("Scripting.FileSystemObject") myFolderName = FSO.GetFolder(myFolderPath).Name MsgBox myFolderName Set FSO = Nothing End Sub
マクロ2の解説
応用技ですが、親フォルダのパスも取得できますし、親フォルダ名も取得できます。
マクロ1と同様、最初に指定するフォルダパスは、実在するものでないといけません。
マクロ2
Sub フォルダパスからフォルダ名を取得4() Dim FSO As Object Dim myFolderPath As String 'フォルダのパス Dim myFolderName As String 'フォルダ名 Dim myParentFolderPath As String '親フォルダのパス Dim myParentFolderName As String '親フォルダ名 myFolderPath = "D:\Users\新田 順也\Dropbox" Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.GetFolder(myFolderPath) myFolderName = .Name myParentFolderPath = .ParentFolder myParentFolderName = .ParentFolder.Name End With MsgBox "フォルダ名:" & myFolderName & vbCr & _ "親フォルダのパス:" & myParentFolderPath & vbCr & _ "親フォルダ名:" & myParentFolderName Set FSO = Nothing End Sub