「マクロは知識を持っていないと実装ハードルが高いかも」と思っているあなた、CopilotやchatGPTを使うと簡単にマクロを作成できちゃいます!VBAのスクリプト知識がなくとも実装することができます!
実際に具体的な定型業務を想定して、自動メール作成とその記録をマクロで作成してみたので紹介します。こんなにも簡単に実装できるんだというころを実感してみてください。
やりたいこと
今後新しい人が入ってきても共通のやり方ができるように、エクセルのマクロを用いて自動化できないかな。。。と思い立ちました。
定型業務である以下のようなメールを、自動で作成して、作成した履歴も作れるようにしたい!
件名:初めまして、ABC会社です
本文:〇〇様初めまして。私はABC会社の△△と申します。この度はお取引の機会をいただき、誠にありがとうございます。
次回の打ち合わせはXX月XX日の□□□□に予定しております。詳細については別途ご連絡いたしますので、どうぞよろしくお願い申し上げます。 今後とも、どうぞよろしくお願い申し上げます。
実施すること
①エクセルファイルを準備する
実際に自動化したい内容や実装したいことをイメージしてみましょう。
【条件①】
先ほどのメール内容で、可変の項目はエクセルで入力し、ボタンを押すとメールが作成されるようにしたい。(こんな感じ↓)
【条件②】
ボタンを押すとメールの下書き画面がディスプレイに出てきてほしい。
【条件③】
このエクセルでメールを作った履歴が別シートで記録されるようにしたい。(こんな感じ↓)
【条件④】
条件①の項目が入力されないとエラーとなるように、項目を必須化したい。
②Copilot/chatGPTに聞いてみる
WebのCopilotで以下の文章をプロンプトとして入力し聞いてみます。(chatGPTでも大丈夫!)
Excelで「メール下書き作成」というボタンを押すと、メールの下書きが作成できるマクロを具体的に手順を追って教えてほしいです。ボタンの設定方法も具体的に教えてください。また、以下の条件も反映してください。
#条件①
・件名は、以下のテンプレートが入力されるようにして下さい。
・メール内容は、以下のテンプレートがあるものの“取引先”や”差出人”、“日付”、“時間”を自由に記載したいので、該当のセルに入力するとそれらが反映されるような仕組みにしてほしい(セルA2、B2、C2、D2)
・メール本文のテンプレートは以下
【件名】
「初めまして、ABC会社の田中です」【メール本文】
「”取引先”様
初めまして。私はABC会社の”差出人”と申します。この度はお取引の機会をいただき、誠にありがとうございます。次回の打ち合わせは“日付”の“時間”に予定しております。詳細については別途ご連絡いたしますので、どうぞよろしくお願い申し上げます。
今後とも、どうぞよろしくお願い申し上げます。」
#条件②
ボタンを押すとメールの下書き画面が出てきてほしい。#条件③
ボタンを押した際に別のシートに作成記録が保存されるようなマクロも組んでほしいです。項目としては、作成日時・件名・本文内容を記録してください。#条件④
A2~D2を入力しないとメール作成ボタンが押下できないよう、必須化の設定を組み込んでください。
③回答を確認する
回答内容を確認しましょう。
Excelで「メール下書き作成」ボタンを押すと、指定されたテンプレートに基づいてメールの下書きを作成するマクロを設定する手順を以下に示します。各条件を満たすように設定します。
手順1: ボタンの作成
- Excelを開く: 新しいワークブックを開きます。
- 開発タブを表示: 「ファイル」→「オプション」→「リボンのユーザー設定」→「開発」にチェックを入れて「OK」をクリックします。
- ボタンの挿入: 「開発」タブ→「挿入」→「フォームコントロール」から「ボタン」を選択し、シート上に配置します。
- ボタンの名前を変更: ボタンを右クリックして「テキストの編集」を選択し、「メール下書き作成」と入力します。
手順2: マクロの作成
- VBAエディタを開く: 「開発」タブ→「Visual Basic」をクリックします。
- 新しいモジュールを挿入: 「挿入」→「モジュール」を選択します。
- 以下のコードを入力:
Sub メール下書き作成() Dim OutlookApp As Object Dim OutlookMail As Object Dim ws As Worksheet Dim subject As String Dim body As String Dim recipient As String Dim sender As String Dim dateMeeting As String Dim timeMeeting As String ' シートの設定 Set ws = ThisWorkbook.Sheets("Sheet1") ' 必須セルのチェック If IsEmpty(ws.Range("A2")) Or IsEmpty(ws.Range("B2")) Or IsEmpty(ws.Range("C2")) Or IsEmpty(ws.Range("D2")) Then MsgBox "すべての必須項目を入力してください。", vbExclamation Exit Sub End If ' セルの値を取得 recipient = ws.Range("A2").Value sender = ws.Range("B2").Value dateMeeting = ws.Range("C2").Value timeMeeting = ws.Range("D2").Value ' 件名と本文のテンプレート subject = "初めまして、ABC会社の田中です" body = recipient & "様" & vbCrLf & vbCrLf & _ "初めまして。私はABC会社の" & sender & "と申します。この度はお取引の機会をいただき、誠にありがとうございます。" & vbCrLf & vbCrLf & _ "次回の打ち合わせは" & dateMeeting & "の" & timeMeeting & "に予定しております。詳細については別途ご連絡いたしますので、どうぞよろしくお願い申し上げます。" & vbCrLf & vbCrLf & _ "今後とも、どうぞよろしくお願い申し上げます。" ' Outlookの設定 On Error Resume Next Set OutlookApp = GetObject(class:="Outlook.Application") If OutlookApp Is Nothing Then Set OutlookApp = CreateObject(class:="Outlook.Application") End If On Error GoTo 0 ' メールの作成 Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .Subject = subject .Body = body .Display ' 下書きとして表示 End With ' 作成記録の保存 Dim logSheet As Worksheet Set logSheet = ThisWorkbook.Sheets("Log") Dim nextRow As Long nextRow = logSheet.Cells(logSheet.Rows.Count, 1).End(xlUp).Row + 1 logSheet.Cells(nextRow, 1).Value = Now logSheet.Cells(nextRow, 2).Value = subject logSheet.Cells(nextRow, 3).Value = body End Sub
手順3: ボタンにマクロを割り当てる
- ボタンを右クリック: 「マクロの登録」を選択します。
- マクロを選択: 「メール下書き作成」を選択し、「OK」をクリックします。
手順4: ログシートの作成
- 新しいシートを追加: 「挿入」→「シート」を選択し、「Log」と名前を変更します。
- ヘッダーを追加: 「Log」シートのA1に「作成日時」、B1に「件名」、C1に「本文内容」と入力します。
これで、指定された条件を満たすマクロが完成です。ボタンを押すと、メールの下書きが作成され、ログシートに記録が保存されます。また、必須項目が入力されていない場合は警告が表示されます。試してみてください!
④実装する
回答内容を確認すると、マクロ初心者なので設定方法も教えてもらえました。あとは、回答内容に沿って設定やVBAのコピペを実施してみてください。
まとめ
マクロの実装方法を紹介しましたがいかがでしたでしょうか。CopilotやchatGPTを使うとめちゃくちゃ時短になるし、知識がなくともすぐに実装できちゃいましたね。
ぜひこの記事を参考に試してみてください!
最後までお読みいただきありがとうございました!!
コメント