キャスレーコンサルティングSI部の高橋です。
単純作業の効率を上げてくれるツールはたくさんありますが、
新しくツールを入れる場合、セキュリティ面などで勝手に入れることができないことが多々あります。
そこで、作業の効率を図るために、大概の端末に入っているEXCELを使いVBAを組んでみようと思います。
繰り返し作業の効率化
テストエビデンスや設計書など、決まった雛形を基に、ファイル名やシート名を一部変更して大量に作成する時
毎回、雛形をコピーし、ファイル名を変更し、シート名を変更を繰り返していくと、地味に時間がかかってしまいます。
このように時間がかかる繰り返し作業を自動化することができれば、かなり効率が上がるのではないでしょうか。
そこで今回は、雛形をコピーし、規則性に沿ったファイル名、シート名に変更するVBAを組んでみようと思います。
VBAをやってみよう
VBAを実行するまでの手順を説明いたします。
1.EXCELファイルを開き、開発タブを選択
開発タブが出ていないときは、以下の手順で、開発タブを表示してください。
1.ファイルを選択
2.オプションを選択
3.リボンのユーザ設定を選択し、メインタグの開発チェックボックスを選択し、OKボタンを押下
2.VBAを開く
1.開発タブから、Visual Basicを選択
2.左のフォームのThisWorkbookをダブルクリックし、開きます
3.VBAを書く
1.下記のように、VBAを書きます。
Sub CopyAndRename() 'ファイル作成数 Const makeFileCount As Integer = 3 'ファイル数カウント Dim fileCount As Integer '作成ファイル名 Dim makeFile As String fileCount = 1 '作成ファイル数分、雛形をコピーする Do While fileCount <= makeFileCount '作成ファイル名 makeFile = "C:\AAA\テストエビデンス_" & fileCount & ".xls" '雛形をコピーして、新しいファイルを作成 FileCopy "C:\AAA\テストエビデンス_雛形.xls", makeFile '新しく作成したファイルを開く Workbooks.Open Filename:=makeFile, ReadOnly:=False '新しく作成したファイルのシート名をエクセル名にする(拡張子なしファイル名) ActiveWorkbook.Worksheets(1).Name = Mid("テストエビデンス_" & fileCount, 1, 30) '保存して閉じる ActiveWorkbook.Close savechanges:=True 'ファイル数カウントを増やす fileCount = fileCount + 1 Loop End Sub
【説明】
・FileCopy 雛形ファイル 作成ファイル
雛形ファイル、作成ファイルをフルパスでファイル名指定することで、ファイルが作成されます。
・Workbooks.Open Filename:=作成ファイル, ReadOnly:=False
作成ファイルを、更新可能(ReadOnly:=False)で開きます。
・Mid(作成ファイル名, 1, 30)
作成ファイル名を30文字にします。
※シート名で利用しますが、長い文字列だとシート名で利用できないため、30文字にしています。
・ActiveWorkbook.Worksheets(1).Name = Mid(作成ファイル名, 1, 30)
作成したファイルのsheet1の名前を、作成ファイル名にします。
・ActiveWorkbook.Close savechanges:=True
作成したファイルを保存(savechanges:=True)して閉じます。
4.実行
赤枠の三角のボタンを押下すると実行されます。
5.作成結果
雛形を元に、ファイル作成されます。
1.実行前
2.実行後
赤枠のファイルが作成されたExcel
手で1つ1つファイルを作成していった方が早いこともありますが、
手で繰り返して行っていくと、ケアレスミスを起こしたり、
後日、同様の作業が今後も行うときの同じだけ時間を使ってしまいます。
VBAを利用することで、ケアレスミス防止や、
トータルでの作業時間の短縮になることもありますので、一度利用してみてはいかがでしょうか。