スポンサーリンク
はじめに
Excel VBAで、Excelシート内に書かれたように、複数のファイル名の変更orファイル移動を簡単にやるツールを作成した。
このツールを使うと、たとえば
といったファイルなら
などと新しいファイル名を指定すれば、その通りにファイル名を変更できる。また
などと別のフォルダを指定したら、そのようにファイル移動される。
もちろん複数のファイルを同時に処理可能。
こういうのは、Powershellとか他のツールでやる方法は色々と紹介されているが、なんだかんだ身近なExcelでやるのが分かりやすいと思った。手抜きですが、自分でも割と使ってます。
とにかく簡易的に作るのが目的なので、エラー対策とかも大してしてないし、普通にDLできるよう公開します。
DLはこちら。
ソースコードなど
今回のマクロ、ソースコードは↓の通り。
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 26 27 28 29 |
Option Explicit Sub changeFileNames() Dim ws As Worksheet: Set ws = ActiveSheet Dim rSize As Long rSize = ws.Cells(Rows.Count, 2).End(xlUp).Row - 1 Dim arr As Variant '新旧ファイル名一覧の内容 arr = ws.Cells(2, 1).Resize(rSize, 3).Value If MsgBox("一覧に示したようにファイル名変更しますか?", vbQuestion + vbOKCancel, "確認") = vbCancel Then Exit Sub Application.ScreenUpdating = False On Error Resume Next Dim r As Long For r = 1 To rSize 'Name→ファイル名の変更or移動 Name arr(r, 2) As arr(r, 3) Next r MsgBox "終了しました。", vbInformation, "終了" End Sub |
VBAのNameステートメントは、ファイル名変更のほかに、ファイル移動の機能も兼ねている。
今回のマクロは、ただそれを当てはめただけ。
使い方
今回のツールは、Windows10以降を前提に、次のような使い方を想定して作っている。
エクスプローラの画面で、目的のファイルを選択してから
リボン「ホーム」タブ
→「パスのコピー」
とする。
すると、それらファイルのフルパスが文字列としてコピーされるので、これをテキストエディタにでも貼り付ける。
続けて当ツールのB列にも、それらの文字列を貼り付ける。
先ほどテキストエディタに貼り付けたフルパス情報のデータを、テキストエディタの機能で置換とかして色々と書き換える。そしてそれをコピー。
いま書き換えた文字列を、C列に貼り付ける。
そして「ファイル名変更」ボタンを押す。確認メッセージに対し「OK」を押す。
これで、表の中にまとめられた情報を元に、複数ファイルの名称変更・移動ができる。
スポンサーリンク