エクセルでセルの文字をファイル名にして保存するマクロを作る方法

エクセル

あなたはファイルに名前を付けて保存するのが面倒だと思ったことはありませんか?

「ファイル名を毎回手入力している」
「伝票番号や顧客名をコピペしている」
そんな作業をしていませんか?

上書き保存は「ctrl」+「S」で保存したり、名前を付けて保存する画面を「f12」で出したり、ショートカットはできますが、ファイル名も自動でつけてくれた方が便利ですよね。

エクセルVBAを使えば、セルに入力されている文字をそのままファイル名として使い、ファイル名を自動でつけてくれます。

保存作業はボタン1回で完了します。

今回は「エクセルでセルの文字をファイル名にして保存するマクロを作る方法」を紹介します。

このページでは、エクセルのセルに入力した文字を使って、
ファイル名を自動で付けて保存する方法を解説します。

「毎回、名前を付けて保存するのが面倒」
「伝票番号や日付をファイル名にしたい」
そんな方に向けて、コピペで使えるVBAコードを紹介します。

このマクロが役立つ実務シーン

・見積書・請求書を「日付+取引先名」で保存する場合

・日報を「2026-02-07_営業日報.xlsx」のように自動命名する場合

・伝票番号をファイル名にして管理ミス防止をする場合

    1. このマクロが役立つ実務シーン
  1. セルの文字をファイル名にして保存する流れ(Before → After)
  2. Before:ファイル名を手入力で保存している場合
    1. 保存の流れ
    2. 解説
  3. After:セルの文字をファイル名にして自動で保存する場合
    1. 保存の流れ
    2. 解説
  4. Before → After の違いまとめ
    1. このあと読むと理解が深まる内容
  5. この方法が向いている人/向いていない人
    1. この方法が向いている人
    2. この方法があまり向いていない人
    3. 迷った場合の判断ポイント
    4. 「向いている人/向いていない人」のまとめ
  6. エクセルでセルの文字をファイル名にして保存するマクロを作る方法
  7. 実際の使い方の例
    1. セルの文字を使ってPDFファイルとして保存したい場合
  8. 応用の使用例
    1. 【関数】ファイル名用にセルの文字を組み合わせたい場合
  9. よくある質問(FAQ)
    1. Q2. 複数のセルの文字を組み合わせてファイル名にできますか?
    2. Q3. 同じ名前のファイルがすでに存在する場合はどうなりますか?
    3. Q4. 日本語のファイル名でも問題なく保存できますか?
    4. Q5. PDF形式で保存することもできますか?
  10. まとめ
  11. 関連ページ
    1. セルの文字を使ってPDFファイルとして保存したい場合
    2. 【VBA】保存先フォルダを指定して名前を付けて保存したい場合
    3. 開いているエクセルファイルの名前をセルに表示したい場合
    4. 【関数】ファイル名用にセルの文字を組み合わせたい場合

セルの文字をファイル名にして保存する流れ(Before → After)

エクセルで作成した書類を保存する際、
ファイル名の付け方によって、作業効率やミスの発生率は大きく変わります。

まず、
手作業で保存している場合(Before)
セルの文字を使って自動保存する場合(After)
を比較して、保存の流れを見てみましょう。


Before:ファイル名を手入力で保存している場合

保存の流れ

① エクセルで書類を作成
  ↓
②「名前を付けて保存」をクリック
  ↓
③ ファイル名を考える
  ↓
④ セルの内容を見ながら手入力 or コピペ
  ↓
⑤ 入力ミスがないか確認
  ↓
⑥ 保存

解説

この方法では、保存するたびにファイル名を考えて入力する必要があります。
取引先名や日付、管理番号などを毎回入力するため、

  • 入力ミスが起こりやすい
  • 表記が人によってバラつく
  • 保存作業に地味に時間がかかる

といった問題が発生しがちです。

特に、
毎日同じような書類を作成する場合や、
保存件数が多い業務では、
小さな手間が積み重なって大きな負担になります。


After:セルの文字をファイル名にして自動で保存する場合

保存の流れ

① エクセルで書類を作成
  ↓
② セルに「ファイル名用の文字」を入力
  ↓
③ ボタンをクリック
  ↓
④ セルの文字を使って自動で保存

解説

あらかじめセルにファイル名として使う文字を入力しておけば、
ボタンをクリックするだけで、その文字を使って自動的に保存されます。

ファイル名を入力する作業や確認作業が不要になるため、

  • 入力ミスがなくなる
  • ファイル名の表記が統一される
  • 保存作業が大幅に短縮される

といったメリットがあります。

実務では、
「日付+取引先名+書類名」
「管理番号+案件名」
などをセルで管理しておくことで、
誰が使っても同じルールでファイルを保存できるようになります。


Before → After の違いまとめ

・ファイル名の入力 :手入力 → 自動
・入力ミス     :起こりやすい → 起こらない
・作業時間     :毎回かかる → ボタン1回
・表記の統一    :バラつく → 統一される

このように、
セルの文字をファイル名にして保存するだけで、
保存作業を大幅に効率化できます。

このあと読むと理解が深まる内容

この仕組みを応用すれば、
PDF形式での保存や、保存先フォルダの指定、
複数セルを組み合わせたファイル名の作成なども可能です。

本ページ後半では、
具体的なマクロコードと応用例を紹介していきます。

この方法が向いている人/向いていない人

エクセルでセルの文字をファイル名にして保存する方法は、
すべてのケースに万能というわけではありません。

ここでは、
どんな人・業務に向いているのか
逆に、あまり向いていないケース
を整理しておきます。


この方法が向いている人

次のような作業をしている方には、特におすすめです。

・請求書や見積書、報告書を頻繁に保存している  
・ファイル名に「日付」「取引先名」「管理番号」を使っている  
・保存時の入力ミスや表記ゆれを減らしたい  
・毎回同じルールでファイル名を付けたい  
・保存作業をできるだけ自動化したい

特に、
毎日・毎週同じような書類を扱う業務では、
作業時間の短縮効果が大きくなります。

一度仕組みを作ってしまえば、
ボタン1回で誰でも同じルールで保存できるため、
業務の属人化防止にもつながります。


この方法があまり向いていない人

一方で、次のようなケースでは、
この方法はあまり向いていない場合があります。

・書類を保存する頻度がとても少ない  
・毎回ファイル名の付け方が大きく変わる  
・保存時に内容を見ながら都度名前を決めたい  
・マクロの使用が制限されている環境

このような場合は、無理に自動化せず、通常の「名前を付けて保存」を使った方が
かえってシンプルなこともあります。


迷った場合の判断ポイント

・同じようなファイルを月に何度も保存している → 向いている  
・ファイル名のルールがある程度決まっている → 向いている  
・保存作業が面倒だと感じている → 向いている  

ひとつでも当てはまるなら、
今回紹介している方法を試してみる価値は十分あります。


「向いている人/向いていない人」のまとめ

セルの文字をファイル名にして保存する方法は、
「繰り返し発生する保存作業」を効率化するための仕組みです。

すべての人に必要な機能ではありませんが、
ハマる業務では、確実に効果を実感できます。

このあと紹介するマクロコードを使って、ご自身の業務に合うかどうか、一度試してみてはいかがでしょうか。

エクセルでセルの文字をファイル名にして保存するマクロを作る方法

エクセルでセルの文字をファイル名にして保存するマクロを作る方法です。

下のように、A2セルの文字をファイル名として、ブックを保存するのを例に紹介します。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

A2セルをファイル名として、デスクトップに、ファイルを保存する、という意味です。

赤枠部のコードです。

Dim fileName As String
Dim filePath As String

' ファイル名を取得
fileName = Range("A2").Value

' ファイルの保存場所をデスクトップに設定
filePath = Environ("USERPROFILE") & "\Desktop\" & fileName & ".xlsx"

' ファイルを保存
ActiveWorkbook.SaveAs fileName:=filePath, FileFormat:=xlOpenXMLWorkbook

※注:赤字部の「.xlsx」を「.xlsm」にすると、マクロ有効ブックで保存できます。

コードを入力したら、コードの入力画面を閉じて下さい。

5.ボタンができた →A2セルに文字を入力 →ボタンをクリック

ボタンができました。

A2セルに文字を入れたら、ボタンをクリックします。

6.ファイルが保存された

A2セルの文字で、ファイルに名前を付けて保存ができました。

実際の使い方の例

実際に書類に使ってみます。

下のような請求書を使って、「伝票NO 会社名」でファイルを保存したいとします。

TEXJOIN関数を使って、伝票NOと会社名を、A2セルに連結します。

(TEXTJOIN関数の使い方は、下のリンクで紹介していますので、使い方を確認したい方は、下のリンクからどうぞ。
 →エクセルで別のセルの文字をつなげる方法 CONCAT TEXTJOIN関数

A2セルに伝票NOと会社名の連結表示が出ました。

これならA2セルにも入力不要で、自動表示できます。

次に、先ほど作ったマクロボタンを押します。




「伝票NO 会社名」で新規ファイルが保存できました。

これなら書類のセルに文字を入れればいいので、同じ番号や会社名などを、セルに入力して、ファイル名をつけるときにも入力して・・・という二度打ちがなくなりますね!

セルの文字を使ってPDFファイルとして保存したい場合

「セルの文字をファイル名にして保存」だけでなく、
PDFで出力しつつ、伝票番号などをファイル名に付けて保存したい という方は、
こちらのページも参考にしてください。

▶エクセルでPDF出力&ファイル名に伝票番号を付けるのを、マクロボタンで自動化する方法

応用の使用例

次はセルに入っている文字列をいくつか組み合わせて、ファイル名にして保存する例です。

ファイルを保存するときに「20230301_請求書_ABC株式会社_12345678」など、

日付、文書名、会社名、伝票番号などをファイル名に入れたいことが多いと思います。

日付、会社名、伝票番号は、エクセルのセルに記載してあるので、そのままファイル名に転記します。

日付は、「2023/03/01」でスラッシュ(/)が入っているとうまくいかないので、「YYYYMMDD」形式に変換してから転記します。

その場合のコードを紹介します。

赤枠部のコードです。

Dim fileName As String
Dim filePath As String
Dim dateText As String

' 日付の各部分を取得
Dim yearPart As String
Dim monthPart As String
Dim dayPart As String

yearPart = Format(Range("I3").Value, "YYYY")
monthPart = Format(Range("I3").Value, "MM")
dayPart = Format(Range("I3").Value, "DD")

' ファイル名を作成
fileName = yearPart & monthPart & dayPart & "請求書" & Range("C2").Value & "_" & Range("I2").Value

' ファイルの保存場所をデスクトップに設定
filePath = Environ("USERPROFILE") & "\Desktop\" & fileName & ".xlsx"

' ファイルを保存
ActiveWorkbook.SaveAs fileName:=filePath, FileFormat:=xlOpenXMLWorkbook

これでボタンを押すと・・・下の画像のようにファイル名にセル情報が自動で反映されました。

これならファイル名の打ち直しは無くなりますね!

【関数】ファイル名用にセルの文字を組み合わせたい場合

ファイル名に「日付+氏名+番号」など、
複数のセルの文字を組み合わせたい 場合は、
事前に文字列を作っておくとマクロがシンプルになります。

文字の結合方法はこちらのページで解説しています。

▶ エクセルで別のセルの文字をつなげる方法(CONCAT・TEXTJOIN)

よくある質問(FAQ)

Q1. ファイル名に使えない文字が入っているとどうなりますか?

A.
エラーが発生し、ファイルは保存されません。

Windowsでは、ファイル名に次の文字は使用できませんのでご注意ください。

\ / : * ? " < > |

セルの文字にこれらが含まれている場合は、
事前に置換などで削除・変換してから保存するようにしてください。


Q2. 複数のセルの文字を組み合わせてファイル名にできますか?

A.
はい、可能です。

あらかじめ別のセルで
「日付+取引先名+書類名」などを結合しておき、
そのセルをファイル名として指定すると、
実務で使いやすいファイル名を自動で作成できます。

文字の結合方法は、本文中で紹介している関数(CONCAT / TEXTJOIN)を使うのがおすすめです。


Q3. 同じ名前のファイルがすでに存在する場合はどうなりますか?

A.
そのまま保存しようとすると、
上書き確認が表示される、または エラーになる 場合があります。

上書きを避けたい場合は、
・日付や時刻をファイル名に含める
・連番を付ける
といった工夫をすると安全です。


Q4. 日本語のファイル名でも問題なく保存できますか?

A.
はい、日本語のファイル名でも問題ありません。

取引先名や担当者名など、
日本語を含む文字列でも正常に保存できます。

ただし、
・全角記号
・機種依存文字
が含まれていると、環境によってはエラーになることがあるため、
シンプルな文字構成にしておくと安心です。


Q5. PDF形式で保存することもできますか?

A.
はい、できます。

今回紹介した方法を応用すれば、
セルの文字を使って PDFファイルとして保存 することも可能です。

請求書・見積書・報告書などをPDFで管理したい場合は、
本文中で紹介しているPDF保存の関連記事もあわせて確認してください。

まとめ

エクセルでセルの文字をファイル名にして保存するマクロを作る方法です。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →A2セルに文字を入力 →ボタンをクリック

6.ファイルが新規保存できる

これで、セルに入れた文字でファイル名の保存ができるので、セルに入力して、ファイル名をつけるときにも入力して・・・という二度打ちがなくなって、楽になりますね!

今回は、セルの文字を使ってファイル名を自動で付けて保存する方法を紹介しました。

この仕組みを応用すれば、
・PDFでの保存
・保存先フォルダの自動切り替え
・伝票番号付きの一括保存
といった、より実務向けの自動化も可能です。

気になる方は、以下の関連ページもあわせてご覧ください。

関連ページ

セルの文字を使ってPDFファイルとして保存したい場合

「セルの文字をファイル名にして保存」だけでなく、
PDFで出力しつつ、伝票番号などをファイル名に付けて保存したい という方は、
こちらのページも参考にしてください。

▶エクセルでPDF出力&ファイル名に伝票番号を付けるのを、マクロボタンで自動化する方法

【VBA】保存先フォルダを指定して名前を付けて保存したい場合

今回のマクロでは保存先を固定していますが、
フォルダを指定してから名前を付けて保存したい 場合は、
以下のページの方法を組み合わせると、より実務向けの仕組みになります。

▶エクセルVBAでフォルダ指定しておいて名前を付けて保存する方法

開いているエクセルファイルの名前をセルに表示したい場合

ちなみに今回は「セルの文字 → ファイル名」でしたが、
逆に、開いているエクセルファイルの名前をセルに表示したい というケースもあります。

その場合は、次のページが参考になります。

▶ エクセルで開いているファイルのファイル名をセルに表示する方法

【関数】ファイル名用にセルの文字を組み合わせたい場合

ファイル名に「日付+氏名+番号」など、
複数のセルの文字を組み合わせたい 場合は、
事前に文字列を作っておくとマクロがシンプルになります。

文字の結合方法はこちらのページで解説しています。

▶ エクセルで別のセルの文字をつなげる方法(CONCAT・TEXTJOIN)

コメント

タイトルとURLをコピーしました