ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【Excel VBA】ファイル名を変換するマクロ。Nameメソッドの使用例。




どうも、ゴリラストロングです。

 

 

今回は、ファイル名を変換するマクロを作成してみました。

Nameメソッドの使用例として簡単なコードになっていると思います。

 

 

 

<元データ>

f:id:gorilla-strong:20200309135910p:plain

 

f:id:gorilla-strong:20200309140055p:plain

 

変換したいフォルダのパスをB2にあらかじめ入力しておきます。

この状態で、ファイル名取得のボタンをクリックします。

 

 

 

 

<ファイル名取得をクリック後>

f:id:gorilla-strong:20200309140307p:plain

このように、A4:A8セルに変換前のファイルの名前が転記されます。

 

 

 

次に、リネーム後の名前をB4:B8セルに入力します。

f:id:gorilla-strong:20200309140533p:plain

入力が完了したら、リネームボタンをクリックします。

 

 

 

<リネームをクリック後>

f:id:gorilla-strong:20200309140615p:plain

このように、ファイル名が指定の名前に変換されています。 

動作は以上になります。

 

 

 スポンサーリンク

 

 

<ファイル名取得マクロのソースコード

Sub ファイル名変換()

Dim macro As Object
Set macro = Workbooks("ファイル名変換.xlsm").Worksheets("ファイル名変換")

Dim fpath As String
path = macro.Range("B2")

Dim fso As Object
Dim cf As Variant

Set fso = CreateObject("Scripting.FileSystemObject")
Set cf = fso.getfolder(path)



i = 4
For Each f In cf.Files
    Cells(i, 1) = f.Name
    i = i + 1
Next

End Sub

  

<リネームマクロのソースコード

Sub リネーム()

Dim macro As Object
Set macro = Workbooks("ファイル名変換.xlsm").Worksheets("ファイル名変換")

Dim path As String
path = macro.Range("B2")

Dim lastrow As Long
lastrow = macro.Cells(Rows.Count, 1).End(xlUp).Row


For i = 4 To lastrow


Dim oldname, newname As String
oldname = macro.Range("A" & i)
newname = macro.Range("B" & i)


Dim sOld
Dim sNew

sOld = path & "¥" & oldname
sNew = path & "¥" & newname

Name sOld As sNew

Next


End Sub

 

 

<今回参照させていただいたホームページ>

https://mmm-program.com/vba-get-files/

 

https://vbabeginner.net/vba%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D%E3%82%84%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%90%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%EF%BC%88name%EF%BC%89/

 

 

以上、ゴリラストロングでした。

 

スポンサーリンク