Excelファイルを保存するときに、毎回手動でファイル名を付けていると手間がかかり、名前付けのミスも発生しやすくなります。
そこで、VBA(Visual Basic for Applications)を使って、セルの値を自動的にファイル名に反映させる方法をご紹介します。
これにより、ファイル名に規則性が生まれ、ソートや検索が簡単になり、保存時の手間を大幅に削減できます。
セルの値をファイル名にするメリット
保存時の手間が省ける
日付など毎日変化する情報をセルに入力しておけば、VBAコードによって自動的にその値を含んだファイル名を作ることができます。
手動で名前を変更する必要がなくなるので、保存作業がスムーズに行えます。
規則性があるファイル名で管理が楽に
部署名、帳票名など一定の文字列と、日付などの変動情報を組み合わせることで、わかりやすいネーミング規則を作ることができます。
一覧にしたときにソートしやすく、いつ作成されたファイルかが一目でわかるようになります。
VBAコードの概要
ここでは、以下のような例を想定します。
- A1セルに「部署名」を入力
- B1セルに「帳票名」を入力
- C1セルに「日付」を入力
例えば、「総務」「月次報告」「2025/03/25」と入力されていた場合、「総務_月次報告_20250325.xlsx」といった形式のファイル名で保存できるようにします。
VBAコードの書き方
VBAエディタを開く
1. Excelを開いた状態で、「Alt + F11」キーを押してVBAエディタを開きます。
2. 「挿入」→「標準モジュール」を選択して新しいモジュールを追加します。
※Excelファイルはマクロ有効形式「〇〇.xlsm」である事
サンプルコードを入力
以下のコードをモジュールに貼り付けてみましょう。
Sub SaveWithCellValue()
' ファイルを保存するフォルダのパスを指定(必要に応じて変更)
Dim folderPath As String
folderPath = "C:\TestFolder\" '実際の保存先に置き換えてください
' 変動しない値(部署名など)と変動する値(日付など)を組み合わせたファイル名を作成
Dim deptName As String
Dim reportName As String
Dim reportDate As String
deptName = Range("A1").Value ' 部署名(例:総務)
reportName = Range("B1").Value ' 帳票名(例:月次報告)
reportDate = Range("C1").Value ' 日付(例:2025/03/25)
’Range("〇〇").Value の〇〇を変えれば参照するセル位置も変わる
' 日付は好きな形式に整形
Dim dateString As String
dateString = Format(reportDate, "yyyymmdd") ' 例:20250325
' 組み立てたファイル名の例:「総務_月次報告_20250325.xlsx」
Dim newFileName As String
newFileName = deptName & "_" & reportName & "_" & dateString & ".xlsx"
' 保存
ActiveWorkbook.SaveAs _
Filename:=folderPath & newFileName, _
FileFormat:=xlOpenXMLWorkbook ' xlsx形式
MsgBox "ファイルを保存しました: " & folderPath & newFileName
End Sub
ポイント:
folderPathには実際に保存したいフォルダのパスを入力してください。Format関数を利用して、セルに入力された日付を「yyyymmdd」形式に変換しています。お好みに応じて他の形式に変更してもOKです。deptNameやreportNameなどは必要に応じて変数名を変更してください。
コードの実行方法
- Excel上で日付や部署名、帳票名をセルに入力します。(上記の例ではA1, B1, C1)
- 「Alt + F8」キーを押してマクロ一覧を表示し、
SaveWithCellValueを選択します。 - 「実行」ボタンをクリックすると、指定したフォルダにファイルが保存されます。
まとめ
VBAを使えば、日付などの変動する値を含めたファイル名を簡単に自動生成できます。
一度コードを作成しておけば、毎日の保存作業の手間が大幅に減り、さらにファイル名の統一感を保つことができます。
初心者の方でも、この方法なら難しい関数を使わずに自動化を実現できるでしょう。
ぜひ活用して、日々の業務効率をアップしてみてください。



コメント