「【コード】フォルダパスからフォルダ名を取得するWordマクロ」、「【コード】フォルダパスからフォルダ名を取得するWordマクロ(その2)」の続きです。
最初の記事を書いたときに、きぬあささんからいろいろ教えていただきまして、せっかくなので紹介いたします。
すでにかなり時間がたっていまして、リアルタイム感が全くありませんが(笑)。
<目次>
このマクロでできること
フォルダパスから、フォルダ名を取得します。
前回のマクロと同じです。
マクロ1の解説
FileSystemObjectを使っています。
これを使うと、フォルダ名を取得できます。
やっぱりあるんだ。
前回記事を書いたときには、調査不足でした。
最初に指定するフォルダパス(myFolderPath)は、実在するものでないといけません。
【コード】フォルダパスからフォルダ名を取得するWordマクロ(その2)のような単純な文字列の操作であれば、フォルダパスは実在しなくてもいいのですが。
マクロ1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 |