あなたはフォルダ内のファイル名をランダムなファイル名にリネームしたいと思ったことはありませんか?
例えばですが、個人情報をそのままファイル名にすると、うまくないことがありますよね。
「山田太郎_○○銀行_普通_12345678_暗証番号9876」みたいな。
でも1ファイルずつランダムな名前を考えてリネームするなんて面倒です。
そんなときはエクセルVBAでランダムな名前に自動でリネームすれば簡単にできます。
今回は「エクセルVBAでフォルダ内のファイル名をランダムな名前にリネームするボタンを作る方法」を紹介します。
エクセルVBAでフォルダ内のファイル名をランダムな名前にリネームするボタンを作る方法
エクセルVBAでフォルダ内のファイル名をランダムな名前にリネームするボタンを作る方法です。
こんな感じでリネームしてみます。
マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
3.コード入力画面が開く
4.コードを入力
コードを入力します。
ランダムフォルダ内のファイル名をランダムにリネームする、という内容です。
5.ボタンができた →ボタンを押す
ボタンができたら、ボタンを押します。
6.リネームできた
ファイル名がリネームされ、「リネーム完了しました」と出ます。
フォルダを見ると、ちゃんとリネームされてました。
ファイル名の変換は、エクセルでもワードでも大丈夫です。
まとめ
エクセルVBAでフォルダ内のファイル名をランダムな名前にリネームするボタンを作る方法です。
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.新規作成をクリック
3.コードを入れる画面が出る
4.コードを入力
5.ボタンができた →ボタンを押す
6.リネームできた
これでフォルダ内のランダムリネームが簡単になりましたね!
最後に今回使ったコードです。
Dim folderPath As String
Dim fso As Object
Dim fil As Object
Dim fileExt As String
Dim newName As String
Dim idx As Long
folderPath = Environ("USERPROFILE") & "\Desktop\ランダム\"
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(folderPath) Then
MsgBox "フォルダが見つかりません: " & folderPath, vbExclamation
Exit Sub
End If
Randomize
idx = 0
For Each fil In fso.GetFolder(folderPath).Files
idx = idx + 1
fileExt = fso.GetExtensionName(fil.Path)
If fileExt <> "" Then fileExt = "." & fileExt
newName = "File_" & "_" & Int((99999999 - 10000000 + 1) * Rnd + 10000000) & fileExt
fil.Name = newName
WaitMilliseconds 100 ' 100ミリ秒待つ(下に定義)
Next fil
MsgBox "リネーム完了しました。", vbInformation
End Sub
Private Sub WaitMilliseconds(ms As Long)
Dim startT As Double, endT As Double
startT = Timer
endT = startT + ms / 1000#
If endT < 86400 Then
Do While Timer < endT
DoEvents
Loop
Else
' 00:00 をまたぐ場合の処理
Do While Timer >= startT Or Timer < (endT - 86400)
DoEvents
Loop
End If