AIを活用したExcelマクロ作成

作成方法

1. 全体像

従来のExcelマクロ(VBA)は、専門的なプログラミング知識が必要でした。しかし、AIを使うことで「やりたいことを日本語で説明するだけで、VBAコードのたたき台を作ってくれる」ようになり、導入のハードルが大きく下がります。
ただし、自動生成されたコードをそのまま使うのではなく、業務に合うように修正・テストすることが重要です。AIはあくまで“腕のいい補助エンジニア”と考え、最終確認は人間が行うのがポイントです。


2. マクロ作成の基本手順

  1. 目的を明確にする
    • 例:「売上データを集計してグラフを自動生成したい」
    • 曖昧な指示より、具体的なゴールを言語化するのが大事。
  2. 処理の流れを整理する
    • 入力データはどこにあるか?
    • 出力はどんな形にしたいか?
    • 手作業ならどんな手順でやっているか?をメモしておく。
  3. AIに依頼する
    • ChatGPTなどに「Excel VBAで○○を自動化するマクロを作って」と指示。
    • 処理条件(シート名・セル範囲・出力形式など)を具体的に書くほど精度UP。
  4. 生成されたコードをExcelに貼り付ける
    • Excel → Alt+F11 でVBAエディタを開き、標準モジュールにコードを貼る
  5. テスト実行 & デバッグ
    • サンプルデータで試し、動作確認。(サンプルデータもAIで作成)
    • エラーが出た場合は、AIに「このエラーを直して」と相談。
  6. 実務に合わせて微調整
    • 出力形式を変更したり、例外ケースを追加。
    • 改善したい点が出てきたら、再度AIに相談し改修。
  7. マクロの保存と共有
    • ファイル形式は「.xlsm」で保存
    • 権限を持つ人だけが変更できるように注意。

3. 留意点

  • セキュリティ対策
    • マクロはセキュリティ警告が出るため、信頼できる環境でのみ利用。
  • AIの提案は完璧ではない
    • 動作しないコードや想定外の処理が含まれることがある。
    • あくまで“たたき台”として活用。
  • 社内共有の工夫
    • マクロの使い方を簡単なマニュアルにまとめておくと安心。
    • 特定の担当者だけに依存しない仕組みを作る
  • 業務フローの見直しチャンス
    • マクロ化する前に「そもそもこの作業は必要?」と整理すると、効果が倍増。

4. 方法・手順・留意点のまとめ

項目内容ポイント
方法AIに自然言語で依頼してVBAコードを生成やりたいこと」を具体的に伝える
手順目的設定 → 流れ整理 → AI依頼 → コード貼付 → テスト → 微調整 → 保存・共有小さく作って改善を繰り返す
留意点セキュリティ、AIコードの誤り、社内共有、業務整理完璧を求めず“楽になる仕組み”として導入


以下に、美容院の場合のマクロによる効率化案を示しています。ステップは以下のとおりです。


ステップ①マクロ効率化案を10個出してもらう
ステップ②そのうちから、自社のニーズにあうものからAIによりマクロ作成

他の業種についても、同様にAIに効率化案を出してもらい、マクロを作成することになります。

美容院向けExcelマクロ案10選

No事例名内容
1予約管理表の自動更新美容院では毎日の予約が命綱です。マクロを使えば、お客様の予約入力があった瞬間に自動で日別・時間別のスケジュール表を整形し、重複予約をチェックする仕組みが作れます。さらに「キャンセル」や「指名変更」が発生した場合にも、自動で色分けして表示。これにより受付担当が「あれ?ダブルブッキングしてない?」と慌てることがなくなり、現場の混乱防止につながります。まるで秘書が常にカレンダーを整理してくれるような安心感が得られ、予約の見える化でスタッフ全員がスムーズに動けます。
2売上日報の自動集計施術ごとの売上を入力すると、自動で日報を作成し、メニュー別・スタイリスト別の集計表を生成するマクロです。経営者は「今日はカラーが多かったな」「Aさんの売上が伸びている」とすぐに把握できます。さらに月次・年次に自動でグラフを作れるため、売上トレンドの分析も簡単。これにより“感覚経営”から“数字で判断する経営”へと一歩前進できます。スタッフも自分の成果が可視化されることで、自然にモチベーションが高まります。
3顧客カルテの自動整理美容院ではお客様一人ひとりの髪質・好み・施術履歴を管理することが重要です。マクロでカルテを自動整理すれば、次回来店時に「前回はショートにして、ピンク系のカラーでしたね」と瞬時に把握可能。紙カルテを探す時間もゼロになります。またAIと組み合わせれば、来店周期を予測して「そろそろ○○さんが来店されそう」とリマインドを出すことも可能。お客様の“覚えていてくれる安心感”が信頼につながり、リピート率向上に貢献します。
4在庫管理マクロシャンプーやカラー剤などの消耗品は、美容院にとって原価に直結する重要項目です。マクロを使えば施術内容に応じて自動的に在庫を減算し、発注が必要なタイミングを色付きで表示可能。さらに「発注点(最低在庫数)」を下回ったらメール通知する仕組みも作れます。これにより「気づいたら在庫切れ」「大量に余って廃棄」といった無駄を防止できます。まるで在庫担当のベテランスタッフが常に横にいて「そろそろ発注ですよ」と声をかけてくれるような安心感です。
5ポイント管理マクロお客様のリピート促進に欠かせないポイント制度。マクロで来店履歴と連動させて自動加算し、一定ポイントに達したら特典を表示する仕組みを作れます。さらに「今月のポイント有効期限が近いお客様リスト」を自動出力すれば、販促メール送信に直結。これにより「ポイントが失効する前に来店しよう」という動機づけができます。スタッフも手動管理から解放され、顧客フォローに集中可能になります。
6スタッフシフト表の自動作成美容院はスタッフの人数が限られるため、シフト管理は頭を悩ませるポイントです。マクロを活用すれば、各スタッフの希望休や勤務時間を入力するだけで、自動的にバランス良いシフト表を作成可能。さらに繁忙期には売上実績を考慮して「売上トップのスタッフは土日シフト多め」など最適配置ができます。公平感と効率性を両立できるため、スタッフ間の不満が減り、現場の雰囲気が良くなる効果も期待できます。
7キャンセル率分析マクロ当日キャンセルは美容院経営の大敵です。マクロでキャンセル発生日時・理由を自動収集・集計し、曜日・時間帯・担当者別の傾向を可視化できます。「平日夕方の予約はキャンセル率が高い」などが分かれば、対策としてリマインドメールを送るなど施策を打てます。原因が見える化されることで「なんとなく困っている」状態から「対策を打てる」状態になり、売上の安定化につながります。
8顧客アンケート自動集計来店後に記入いただくアンケートをExcelに取り込むと、自動で集計・グラフ化するマクロです。「接客態度」「仕上がり満足度」「価格感」などの平均値を瞬時に算出でき、改善ポイントが明確に。自由記述のコメントもAIと組み合わせれば自動要約できるため、膨大なアンケートを読む手間が省けます。「今日の反省点」「今後の改善点」が一目でわかり、サービス品質向上に直結します。
9施術時間の自動計測と改善美容院では「予定より時間がかかる」が積み重なると回転率に影響します。マクロを使って施術開始~終了時刻を記録し、自動的に平均時間を算出。さらに「予定時間との差」を色付きで表示すれば、時間管理の意識が高まります。例えば「カラーは平均15分オーバーしている」などが分かれば、改善の糸口が見えてきます。スタッフ教育にも役立ち、お客様の待ち時間削減=満足度向上につながります。
10再来店予測マクロ過去の来店履歴からAIを使って「次回の来店予測日」を算出し、一覧表にまとめるマクロです。例えば「前回から45日周期で来るお客様」なら、40日目に自動でリストに表示。そこに合わせて「そろそろご来店いかがですか?」とメール送信すれば、高確率で再来店につながります。美容院にとって最大の課題であるリピート率向上に直結し、“顧客台帳が営業マンに変身する”ような効果を生みます。

以下は請求書作成、メール送付のマクロです。

マクロ作成事例

プロンプト

あなたはExcel VBAの専門家です。

以下の要件に沿って、実行可能なVBAコードを2つ作成してください。
①「Data」シートのデータをもとに、会社名ごとに新しいシート(請求書)を作成します。

【前提】

  • 「Data」シートには、以下のような構成でデータが格納されています(行1はヘッダー):
  • A列:納品日
  • B列:会社名
  • C列:品名
  • D列:数量
  • E列:単価
  • F列:合計金額

【動作】

  • B列(会社名)でユニークな会社ごとに新しい請求書シートを作成
  • 各請求書シートのA1に「請求書」、A2に発行日、A3に請求先を記載
  • A5〜E5に見出し(納品日, 品名, 数量, 単価, 合計)
  • 各行のデータを転記(A〜F列から)
  • 最後に「請求金額合計」をSUM関数で計算
  • 列幅を自動調整
  • 作業後は「Data」シートに戻る

② ①で作成した各請求書シートをPDF化し、メールで送信後に削除します。

【動作】

  • A1セルが「請求書」となっているシートのみを対象
  • シート名+日付(yyyymmdd)をPDFファイル名にして保存
  • Outlookでメールを作成し、PDF添付、宛先は仮に「test@arm-csl.com」
  • メール本文には簡単な送付メッセージ
  • PDF送信後、PDFファイルとExcel上の請求書シートを削除
  • 最後に完了メッセージを表示

※できるだけエラーハンドリング(名前エラー、Outlook未起動、ファイル削除失敗など)も含めてください。
※コードは読みやすく、コメントも適宜付けてください。

回答

Sub ExportInvoicesToPDFAndSend()
Dim ws As Worksheet
Dim pdfPath As String
Dim fName As String
Dim outlookApp As Object
Dim outlookMail As Object
Dim todayStr As String
Dim tempFolder As String

On Error GoTo ErrHandler

todayStr = Format(Date, "yyyymmdd")
tempFolder = Environ$("TEMP") & "\"

' Outlook 起動チェック
On Error Resume Next
Set outlookApp = GetObject(, "Outlook.Application")
If outlookApp Is Nothing Then Set outlookApp = CreateObject("Outlook.Application")
If outlookApp Is Nothing Then
    MsgBox "Outlook が起動していません。", vbExclamation
    Exit Sub
End If
On Error GoTo ErrHandler

' 各シートをチェック
For Each ws In ThisWorkbook.Sheets
    If Trim(ws.Range("A1").Text) = "請求書" Then
        ' ファイル名作成(記号除去)
        fName = Replace(ws.Name, " ", "_") & "_" & todayStr & ".pdf"
        fName = Replace(fName, "\", "_")
        fName = Replace(fName, "/", "_")
        pdfPath = tempFolder & fName

        ' シートをアクティブにしてからPDF化
        ws.Activate
        DoEvents ' ← 安定化のため追加
        ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard

        ' メール作成
        Set outlookMail = outlookApp.CreateItem(0)
        With outlookMail
            .To = "test@arm-csl.com"
            .Subject = "【請求書】" & ws.Name
            .Body = "お世話になっております。" & vbCrLf & _
                    "請求書をお送りしますので、ご確認のほどよろしくお願いいたします。"
            .Attachments.Add pdfPath
            .Display ' 自動送信する場合は .Send に変更
        End With

        ' PDFファイル削除(存在確認付き)
        If Dir(pdfPath) <> "" Then Kill pdfPath

        ' 請求書シート削除(確認ダイアログ抑制)
        Application.DisplayAlerts = False
        ws.Delete
        Application.DisplayAlerts = True
    End If
Next ws

MsgBox "PDF送信と請求書シート削除が完了しました!", vbInformation
Exit Sub

ErrHandler:
MsgBox “エラーが発生しました:” & Err.Description, vbCritical
Application.DisplayAlerts = True
End Sub

請求データ

請求書様式

請求書作成マクロ実行

請求書メール送付マクロ実行