仕事で大量のデータをEXCELで加工する仕事をしていますが、EXCELでデータ加工をした後、保存をするときに名前を考えるのがとても面倒臭いです。
そのままだと”Book1″という名が付けられますが、この名前では何のファイルだったのか開くまでわからないです。
そこで自動で名前を付けてくれるマクロを作成し使うようにしました。
マクロ作成方法
マクロを使うにはまず設定が必要です。こちらの記事で解説していますので参照願います。
マクロの設定が完了したら、開発を選択してVisual Basicをクリックします。
左画面からVBA Project(PERSONAL.XLSB)の標準モジュールのうちModule1~を選択し、右側(General)箇所にVBAコードを記述(この記事のサンプルコードをコピー貼付)し、保存します。
マクロは個人用マクロブックであるPERSONAL.XLSBに保存されています。
それでは自動で名前を付けてくれるマクロ(VBAコード)を紹介しましょう。
時間を名前にして保存
保存ファイル名を現在の日付時間にするコードです。PCのシステムから年、月、日、時、分、秒の情報を取得して、文字に変換しています。
例えば、2022年7月16日13時2分53秒の場合は20220716130253というファイル名になります。
作業の途中で保存していくと、あとで修正する際に修正したい時点から修正できるようになりますので便利です。
Sub 名前を時間にして保存()
Dim f$
f$ = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time)
ActiveWorkbook.SaveAs f$
End Sub
セルに入力された文字を名前にして保存
セルに入力された文字をファイル名にする場合のマクロです。
シートの1行目に表題を入力することが多いと思いますが、セルに入力された表題をファイル名にしています。
Sub 名前を変更して保存()
Dim f$
f$ = ActiveCell
If f$ = "" Then
MsgBox "セルが空欄です。"
Else
ActiveWorkbook.SaveAs f$
MsgBox "Bookを" & f$ & "として保存しました。"
End If
End Sub
セルに入力された文字をシート名に変更
こちらはファイル名ではなく、シート名をセルに入力された文字に変換するコードです。1つのブックで複数のシートに分けている場合に便利なコードです。
Sub シート名を変更()
Dim f$
f$ = ActiveCell
If f$ = "" Then
MsgBox "セルが空欄です。"
Else
ActiveSheet.Name f$
MsgBox "Sheet名を" & f$ & "としました。"
End If
End Sub
クイックアクセスツールバーで簡単実行
保存したマクロを都度呼び出すのは非効率ですので、クイックアクセスツールバーに登録しましょう。
クイックアクセスツールバーへマクロを登録するにはExcelのオプションから「クイックアクセスツールバー」を選択し、「コマンドの選択」から「マクロ」を選択、登録したいマクロ名を選択し、[追加(A)]ボタンをクリックします。
登録したマクロ実行ボタンがツールバーに表示されました。保存する際にこのアイコンをクリックするとマクロが実行されます。
コメント