Excel VBAで複数の画像ファイル名を一括リネームする方法

Visual Basic

Excel VBAを使用して、特定のフォルダにある複数の画像ファイルの名前を一括で変更したい場合、ファイル名を「1.jpg」「2.jpg」「3.jpg」といった連番形式にリネームする方法があります。この記事では、その具体的なコード例とともに、実行手順を解説します。

Excel VBAでファイル名をリネームする基本的な流れ

まずは、Excel VBAでファイル名をリネームする基本的な流れを確認しましょう。特定のフォルダ内にあるファイルを順番に取得し、そのファイル名を希望の形式に変更するには、以下の手順が必要です。

VBAコード例:画像ファイルをリネームする

以下のVBAコードを使えば、指定したフォルダ内の画像ファイルを「1.jpg」「2.jpg」「3.jpg」という連番にリネームできます。

Sub RenameFiles()
Dim folderPath As String
Dim fileName As String
Dim fileCount As Integer
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
folderPath = "C:\Users\test\OneDrive\デスクトップ\owner\実施前\"
fileCount = 1
' フォルダ内のjpgファイルを取得
fileName = Dir(folderPath & "*.jpg")
Do While fileName <> ""
' ファイル名を変更
Name folderPath & fileName As folderPath & fileCount & ".jpg"
fileCount = fileCount + 1
fileName = Dir
Loop
End Sub

このコードでは、指定したフォルダ内の全てのjpgファイルを、順番に「1.jpg」「2.jpg」「3.jpg」という形式にリネームします。
重要な点は、Dir関数を使ってフォルダ内のファイルを順番に取得し、Nameステートメントでファイル名を変更しているところです。

コードの詳細な解説

上記のコードは以下の手順で動作します。

  • folderPathにリネームするファイルが格納されているフォルダのパスを指定します。
  • Dir関数で、指定したフォルダ内にある「.jpg」拡張子のファイルを順番に取得します。
  • Nameステートメントを使用して、ファイル名を「1.jpg」「2.jpg」・・・という形式にリネームします。
  • 全てのファイルを処理するまで、Do Whileループを使用して繰り返します。

注意点と改善点

このコードにはいくつかの注意点と改善点があります。

  • フォルダ内に存在するファイルの数が未知数の場合でも、コードが自動で全てのjpgファイルを処理します。
  • 画像ファイル以外のファイルもリネーム対象にしたくない場合は、Dir関数で取得するファイルの条件を更に限定することができます。
  • ファイル名に「(1)」「(2)」のような数字が含まれている場合、リネーム後に番号の重複がないように工夫が必要です。

まとめ

Excel VBAを使用して、指定したフォルダ内の画像ファイルを一括でリネームする方法をご紹介しました。この方法を使うことで、大量の画像ファイルを効率的に管理できます。コードを応用すれば、他の形式のファイルにも対応することが可能です。ファイル名を整理したい場合に便利なスクリプトですので、ぜひ試してみてください。

コメント

タイトルとURLをコピーしました