【VBS】フォルダ内のファイルを一括リネームする - 変換.tokyo | henkan.tokyo

【VBS】フォルダ内のファイルを一括リネームする


■【VBS】フォルダ内のファイルを一括リネームする

下記のサイト「技術的なこと、あれこれ」を参考にしました。
http://www.sakutyuu.com/technology/?p=1467


サンプルでは、指定したフォルダ内にある拡張子「PDF」ファイルのみを連番でリネームしています。
この指定を変更することで、様々なファイルに対応させることが出来ます。
また、ファイル名は「〇〇〇_連番.pdf」の形式となります。

【VBS】フォルダ内のファイルを一括リネームする.png


■サンプルコード

Const ForReading = 1 '読み込み
Const ForWriting = 2 '書きこみ(上書きモード)
Const ForAppending = 8 '書きこみ(追記モード)

Set FSO = CreateObject("Scripting.FileSystemObject")

'フォルダのパスを取得
target_folder = InputBox("リネーム対象ファイルの保存先フォルダを指定してください。","【PDFファイルリネーム】ファイルの保存先は?")
If Len(target_folder) = 0 Then .Quit

On Error Resume Next
ShowSubfolders FSO.GetFolder(target_folder)
Set FSO = Nothing

Sub ShowSubFolders(Folder)
'フォルダ内のファイルの数を取得
Dim x
x = 0

'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
'フォルダオブジェクトを取得
Set objFolder = objFileSys.GetFolder(Folder)

'ファイルの数を取得(フォルダは除く)
x = objFolder.Files.Count
Dim m
Dim n
m = 0
n = 0
Dim add_txt
add_txt = InputBox("リネームするファイルに付ける名前を指定してください。ファイル名は「〇〇〇_連番.pdf」の形式となります。","【PDFファイルリネーム】ファイルの保存先は?")

For Each File in Folder.Files 'Foler内のファイルを列挙する
On Error Resume Next
Fname = File.name
m = m + 1
'-------------------------------------
Dim strString
Dim strVal
strVal = Fname
strString = Right(strVal, 3)
'PDFファイルの時には連番でリネームする
if strString = "pdf" then
n = n + 1
Dim fs
Dim fn
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set fn = fs.GetFile(Folder & "\" & Fname)
Dim rename
rename = add_txt & "_" & n & ".pdf"
fn.Name = rename
Set fs = Nothing
Set fn = Nothing
end if
'-------------------------------------
'※確実に for ~ next ...から離脱させる
if x = m then
exit for
end if

Next

'サブフォルダについても再帰的にリネーム処理する場合
'For Each Subfolder in Folder.SubFolders 'Foler内のフォルダを列挙する
' ShowSubFolders Subfolder '再帰呼び出し
'Next

Set objFileSys = Nothing
Set objFolder = Nothing
Msgbox "リネームが完了しました",,"【PDF用ファイルリネーム】"
End Sub


■サンプルVBSダウンロード
こちらから


■VBSを作成するのに参考となる書籍
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

VBScriptポケットリファレンス改訂版 (Pocket reference) [ アンク ]
価格:2030円(税込、送料無料) (2018/9/15時点)

楽天で購入


by カエレバ
by カエレバ
by カエレバ
by カエレバ
by カエレバ
by カエレバ