マクロというと「繰り返し作業を自動化」というのが定番ですが、弊社では、モノによっては繰り返しでなくてもプログラムをすることも少なくありません。
今回はその一例でファイル名を変更する使い捨て的なプログラムを作成しました。
規則性があり、大量の作業ではこの方が確実
対象となる作業件数が多く、しかもそれに規則性がある場合は、プログラム化したほうが効率性が上がるだけでなく、間違いがなくなります。
こういった点から弊社では自社内作業でもプログラム化をしています。
今回提示したファイル名を変更するプログラムは、規則性を持ったファイル名を一律に変更することを目的としています。
今回のような使い捨て的なマクロではコーディングも「とりあえず動けばOK」的になっている点ご容赦です。
処理としては指定したフォルダ(パス)にあるファイルで、かつJPG画像のファイルだけを抽出し、それらのファイル名の先頭文字を削ってリネームしています。
Sub ファイル名変更()
Dim strPath As String
Dim strFileName As String
strPath = “D:\”
strFileName = VBA.Dir(strPath & “\*.jpg”, vbNormal)
Do While strFileName <> “”
If VBA.Mid(strFileName, 3, 1) = “-” Then
Debug.Print strFileName
Name strPath & “\” & strFileName As strPath & “\” & VBA.Mid(strFileName, 4, VBA.Len(strFileName))
End If
strFileName = Dir
Loop
End Sub
このプログラムでファイル500個が1秒かからずに終わります。
上記は10分程度で作成したものですが、実際には、「プログラム作成時間」とこの作業を「手作業でやる時間」を比較し、どちらが効率的かを判断することになると思います。
プログラム(マクロ化)でどれほど効率的にできるかは、開発者(作成者)のスキルにも依存するところですが、逆にこういう活用ができると職場でも重宝されるのかと思いますし、重宝されたいですね。