シート登録した宛先/CC/件名/本文に応じて、動的メールを作成するマクロです。
#キー#の部分は作成時にUFで置き換え、ChatGPT及び各種翻訳APIを使用し、自動和英訳可能なAI連携メール作成マクロとしてメール作成を効率化させます。翻訳サービスはGAS、GoogleCloud翻訳、AzureAI翻訳が利用可能です。
・挙動
UFを表示した際の画面及び各種説明は下記です。それぞれのボタンはCtrlと()内の値同時押しによるショートカットで実行可能です。

右のボタン4種はCtrl+SATCどれかで実行可能です。
・コード
・ポイント機能
・各種予約語機能
・メアド、APIkey等の共有ファイル化と読み取り
・各種翻訳機能サービスの使用
・UF上のショートカット実行
各種予約語機能
シート上の本文列にて#キーワード#を記入することで、作成前にUF上で値入力して置き換えることができます。

ただし、#キーワード#は下記の予約語があり、それぞれ自動で機能が発動します。
*MAILADRのみ宛先CC列向けの予約語で、それ以外は本文列用の予約語となります。

| #MAIL宛先# | 宛先列に入れた値に置き換えられます。 |
| #MAIL送信者# | Infoシートに入れた値に置き換えられます。 |
| #MAIL本文# | UF上にMultiline入力ボックスが表示されます。GPT使用/英訳/返信オプションが選べます。 |
| #MAIL末尾# | Infoシートに入れた値に置き換えられます。 |
| #NAIMINMAIL# | 選択メール及び受送信ボックスを元に置き換えます。受信ボックス選択時⇒選択メールの送信者、送信済みボックス選択時選択メールの受信者 へ置換えられます。 |
| #MAILBYAI# | プロンプトInfoシート設定プロンプトに基づいて、ChatGptAPIにより選択メール文に対する返信文を作成します。 |
| *MAILADR(宛先/CC列用) | 宛先/グループ宛先シート情報元にUFから手動で宛先/CCを選択し、メアドと本文中の#MAIL送信者#に置換えられます。 |
下記のような本文があれば、下記のように入力フォームに入力することができます。#MAIL本文#を除いた予約語は自動で置き換えられます。

・#MAIL本文#
上記にある予約語以外の#キーワード#がある場合、本文選択時に置き換える変数と判断し、その数の分だけ置き換える値を入力するテキストボックスがUFに表示されます。予約語:#本文#がある場合は末尾に、改行可能な大きめのテキストボックスが表示されます。

・#MAIL送信者#、#MAIL末尾#
メールの送信者と末尾に値するこの予約語は、別紙Infoシートに記載している情報に置き換えます。例えば、送信者、末尾を下記のように設定しているとします。そうすると、「○○さん Gakuです。 ~以上」のようなメールが作成されます。3列目は英語用となっており、オブションで英語を押した際に置き換えられるものです。

・#NAIMINMAIL#
#NAIMINMAIL#は選択したメールを元に、受信者に置き換えられます。選択したメールが受信と送信ボックスどちらかかを判断し、メール冒頭から送信相手を抽出し置き換えます。
●●受信者 〇●送信者です。
のようなメール冒頭の場合に機能し、本文冒頭を抜き出し、指定のキーワードの下で、選択メールの場所に応じて宛先を抜き出します。

敬称が何であれ、ヒットした場合は●●さん とさんに統一されますので、会社指定のメール書き方がある場合は注意です。
マクロ内容は下記で紹介しています。
・*MAILADR
ワークシート上で登録したメアド表から、メール選択時に自分で選択することができます。
この予約語がある場合、別紙のメアド表を基にしたUFが表示され、複数選択ができます。表示ではメアド以外の名前等の情報を表示させることで、誰であるかを直感的にわかるようにしています。
また、右上のコンボボックスからは、名前を検索することも可能です。

この機能により、メアドが膨大な量があってもすぐに検索可能です。また、個人の検索だけでなく、GroupAdrではグループ宛先シートの登録値を検索できます。
例えばグループ宛先シートに下記のように登録しておけば、宛先とCCを一気に選択して抽出することも可能です。

宛先シートでも同様に複数のメアドを設定すれば、例えば「営業1課」と登録して、その課員複数を一気に呼び出すこともできます。便宜上、個人メアドリストと、グループメアドリストとして分けています。
メアドにて、宛先の他にCCも同時に登録したい場合、メアドの宛先とCCの間に「#CC#」を挟んで記述してください。

上位のように記載することで、この行が選択された場合に宛先に田中さん、CCに中田さんを一気に設定することができます(#MAIL#宛先は上のTo列値に置き換えられる)。
宛先/グループ宛先表示するUFの調整方法
メアド検索/取得機能ではシートのメアドリストをUF表示し、検索取得できます。

この際にUF上に表示される列幅、取得列場所は下記のスクリプトで設定しています。
もしUF上での選択場所の取得列場所を変更したい場合は、下記のLB1,2変数(それぞれ宛先/グループ宛先シートの取得オフセット値)に対して列を数値で入力してください。

UF上の表示幅を調整したい場合は、記載内容に応じて下記数値を変更してください。

予約語の一覧及び使用方法の説明同様、各シートに説明を記載していますので参照ください。
・#MAILBYAI#
プロンプトInfoシート設定プロンプトに基づいて、ChatGptAPIにより選択メール文に対する返信文を作成します。
モデル及び、APIKeyInfoシート下記部分に記載してください。

AI返信作成のプロンプトは同様のシートの下記に記載してください。現状、メール文頭文末は省いた返信作成するプロンプトとなっています。

各種翻訳機能サービスの使用
翻訳時はGooglecloud翻訳API、GAS翻訳、Azure翻訳から選択できます。使用するサービスはF列から選択します。
下記の状態ならD列のGAS行の値から翻訳が実行されます。

また、E列からAPI等の読み取り先ファイルを選択できます。このfileから読み取りの場合は、記載されているKey等を元に和英訳可能です。
共有fileから読み取りを選択した場合、同InfoシートのD17記載のファイルパスを参照し、Key等の情報をこのファイルにコピペします。

関数元は下記でも紹介しています。
メアド、APIkey等の共有ファイル化と読み取りについて
InfoシートD17にてファイルパス記載箇所があります。これは、メールアドレスとAPIkeyなど記載した宛先/グループ宛先及びInfoシートの指定箇所に情報をコピペする元となるファイルです。

あるグループの中で常に最新の共有メアドリストを参照したい場合等で、常に最新のメアドリスト利用するなどの効果が期待できます。
記載するファイルの内容はこのファイルの宛先/グループ宛先シート、Infoシートと同じ構成としてください。マクロによりそれぞれのシートにコピペされるためです。
D17にパスが記載されている場合、UF立ち上げ時に各シートに値がコピペされます。コピペされるシートは宛先/グループ宛先シートとInfoシートのAI、翻訳用APIが記載されている箇所です。

コピペ機能はパスが記載されていない場合はこのブックを直接読み込みます。またエラー回避の為、記載パスファイルが開けない場合もこのブックを読み込むこととしています。
API等については、共有上セキュリティ問題もあり、個人だけで使う場合もあります。その為、E2にて共有ファイルを読み取るかどうかを選択できます。

共有ファイルから読み取りを選択した場合のみ、D2-D7の箇所がD17のファイルからコピペされます。これによりソースファイルからの有効なAPIを部で共有が可能です。
簡易的なファイル共有法について
APIキーの共有に当たっては漏洩に注意が必要です。使用に応じた課金の為、見知らぬ人に使われた場合は費用が発生する危険があります。
安全な共有化としては、AzureでのAPIによる情報渡しなど方法がありますが、少々敷居が高く環境構築が必要です。
簡易的な方法として、Sharepointでの設定があります。
Sharepintを使用できる場合、ファイル読み取り等の権限設定を使用することで簡易的なセキュリティ実現ができます。

あなたがチームの権限者であれば、sharepointから各ファイルのアクセス権限設定が可能です。編集制限の他、ダウンロード不可も設定でき、特定の社員のみのアクセスと万が一のダウンロード漏洩も防げます。
Sharepoint上のファイルは詳細から直接ファイルパス取得でマクロ等でも操作できるファイルパスが取得可能です。リンクではできないので注意です。
UF上のショートカット実行:Ctrl+1~6/SATC
UF上のショートカット登録上にはメール作成のボタンを9つ配置しています。
それぞれCtrlと共に実行できます。UF真ん中の6ボタンは番号のCtrl+1~6,右部分はSATCで実行可能です。

6項目優先表示部分については、キャプションはシート上の記載内容に対応したものが表示されます。自身が最も使うメールを分かりやすい名前で登録してください。シート上記載ない場合は-が表示されます。
・Outlookタブから1クリック呼び出し
今メール作成マクロの神髄はOutlookアプリから呼び出すことにあります。
VBAプロシージャはMS系ファイルの他、Outlookのようなアプリからでも呼び出すことができます。単なる端的なメール作成の他、選択したメールに応じた動的なメール作成が可能な今マクロは、Outlookから呼び出すことでさらに大きな効果を発揮します。


