新しい Outlook に移ると COM アドインと VBA が動かない ── 業務の自動化をどう置き換えるか
· 小村 豪 · Outlook, 新しいOutlook, COMアドイン, VBA, Officeアドイン, Power Automate, Microsoft Graph, Exchange Online, 業務自動化
更新履歴(初版のみ・2026年11月01日公開)
- 初版公開
この記事を引用する(DOI: 10.5281/zenodo.23853970)
この記事はZenodoにアーカイブされています。常に最新版へ解決されるDOIと、いま表示している版に固定されたDOIの両方を下に示します。
小村 豪(2026)「新しい Outlook に移ると COM アドインと VBA が動かない ── 業務の自動化をどう置き換えるか」合同会社小村ソフト. https://doi.org/10.5281/zenodo.23853970 https://comcomponent.com/blog/new-outlook-com-addin-vba-migration/
- DOI(最新版)
- 10.5281/zenodo.23853970
- DOI(この版)
- 10.5281/zenodo.23853971
Windows の Outlook にはこれまでのデスクトップ版(クラシック Outlook)と、新しい Outlook for Windows の2つがあります。新しい Outlook では、COM アドイン、VBA マクロ、Outlook オブジェクトモデル(OOM)が使えません1。送信前に宛先を確認するアドイン、受信したメールの添付ファイルを保存するマクロ、Excel から Outlook を操作してメールを送るツールは、利用者が新しい Outlook に移ると動かなくなります。
答えの要点は3つです。1つ目に、クラシック Outlook は少なくとも2029年までサポートされ、切り替えの前には通知があるので、止まる自動化を洗い出す時間はあります2。2つ目に、洗い出した自動化は処理をどこで動かすかで置き換え先を選びます。送信前の確認は Outlook の Web アドイン、受信や時刻をきっかけにした処理は Power Automate か Microsoft Graph、組織の全員のメールに同じ処理をかけるなら Exchange Online のメールフロールールが候補です。3つ目に、どれも VBA や COM アドインと同じことができるわけではないので、置き換えられない処理はクラシック Outlook に残す期間を決めます。
対象は Microsoft 365(Exchange Online)の職場のアカウントで Outlook を使っている会社と、Outlook を使った自動化を抱える情報システムの担当者です。時期についての記述は2026年11月1日時点で参照した Microsoft の資料に基づきます。
新しい Outlook で使えなくなるもの
Microsoft の機能比較表では、次の項目がクラシック Outlook では「Available」、新しい Outlook では「Not supported」となっています1。
| 項目 | 主に影響を受ける自動化 |
|---|---|
| COM アドイン | 送信前の確認、文書管理や顧客管理のシステムとの連携など、Outlook に組み込んだアドイン |
| VBA マクロ | Outlook の VBA エディターで書いたマクロ |
| Outlook オブジェクトモデル(OOM) | Excel の VBA、PowerShell、C# などから Outlook を操作するツール |
| MAPI | MAPI でメールボックスを扱うツール |
| ルールのインポート/エクスポート | ルールをファイルに書き出して別の PC に移す運用 |
同じ表で、ルール、クイック操作、.pst ファイル、オフラインでの利用は「Partially available」です1。機能はあるものの、クラシック Outlook の機能がすべてそろっているとは限らないという意味です。
COM アドインについて、Microsoft の開発者向けの資料は、より信頼性が高く安定したアドインの体験を提供するために、新しい Outlook では VSTO と COM のアドインをサポートしないとしています3。.NET の VSTO で作ったアドインも対象に入ります。新しい Outlook で同じ機能を使うには、Outlook の Web アドインに移行する必要があります。VSTO と COM のアドインはクラシック Outlook では引き続き使えます3。
VBA マクロはクラシック Outlook では「Microsoft VBA for Outlook Addin」という COM アドインを通して動き、多くの場合は OOM を呼び出します4。OOM は Outlook のオブジェクト・プロパティ・メソッド・イベントの集まりで、VBA のリファレンスに載っているのもこの OOM です5。
見落としやすいのは Outlook の外から Outlook を操作しているツールです。Excel の VBA で CreateObject("Outlook.Application") を呼んで Outlook を起動し、メールを作って送る方法は、Microsoft の VBA の資料にも載っている OOM の使い方です6。PowerShell や C# から同じように Outlook を操作するツールも OOM を使います。新しい Outlook は OOM を持たないので、クラシック Outlook のない PC では、これらのツールも動きません。
flowchart TB
accTitle: 新しい Outlook で使えなくなる仕組み
accDescr: COM アドイン、VBA マクロ、OOM を使う外部ツールはクラシック Outlook の上でだけ動き、新しい Outlook では使えないこと、Outlook の Web アドインは両方で動くことを示す。
AUTO["Outlook を使った業務の自動化"] --> COM["COM アドイン(VSTO を含む)"]
AUTO --> VBA["VBA マクロ"]
AUTO --> EXT["OOM を使う外部ツール"]
AUTO --> WEB["Outlook の Web アドイン"]
COM --> CLASSIC["クラシック Outlook でだけ動く"]
VBA --> CLASSIC
EXT --> CLASSIC
WEB --> BOTH["両方の Outlook で動く"]
CLASSIC -.-> STOP["新しい Outlook に移ると止まる"]
図1: COM アドイン、VBA マクロ、OOM を使う外部ツールはクラシック Outlook でだけ動き、Web アドインは両方で動く。
図の実線は常に成り立つ関係、破線は条件付きの関係です(成立条件は詳細ページの各関係の説明に記載)。関係すべての一覧(全14件、根拠・確度つき)と主要概念の定義は知識マップ詳細ページにまとめています。データ: JSON-LD / Turtle
切り替えの3つの段階と時期
Microsoft は新しい Outlook への移行を opt-in、opt-out、カットオーバーの3段階で進めると説明しています2。
- opt-in: クラシック Outlook の右上に「Try the new Outlook」の切り替えが出ます。新しい Outlook は既定ではオフで、利用者が試し、必要ならクラシック Outlook に戻れます。2つを並べて動かすこともできます。2026年2月23日更新の資料では、いまはこの段階です。
- opt-out: 新しい Outlook が既定でオンになり、利用者は自動的に新しい Outlook に移ります。この段階でも、必要ならクラシック Outlook に戻れます。管理された Enterprise のプランでは、管理者に少なくとも12か月前に通知するとされています。
- カットオーバー: 利用者はクラシック Outlook に戻れなくなり、Microsoft 365 のサブスクリプションで新しく展開する Outlook は新しい Outlook になります。本番のリングで実施する少なくとも12か月前に通知するとされています。
flowchart TB
accTitle: 新しい Outlook への移行の3段階
accDescr: opt-in では利用者が試してクラシック Outlook に戻れ、opt-out では既定で新しい Outlook に移るが戻れ、カットオーバーでは戻れなくなること、opt-out とカットオーバーの前には少なくとも12か月前の通知があり、既存のクラシック Outlook は少なくとも2029年までサポートされることを示す。
S1["opt-in(既定はオフ・利用者が試せる)"] --> N1["少なくとも12か月前の通知"]
N1 --> S2["opt-out(既定でオン・戻れる)"]
S2 --> N2["少なくとも12か月前の通知"]
N2 --> S3["カットオーバー(戻れない)"]
S3 -.-> KEEP["既存のクラシック Outlook は少なくとも2029年までサポート"]
図2: 移行は3段階で進み、opt-out とカットオーバーの前には通知がある。
Microsoft 365 のメッセージセンターの MC949965(2026年2月20日更新)は、Enterprise の環境で opt-out の段階を始める時期を、2026年4月から2027年3月に変えたと伝えています7。同じ通知では opt-out のポリシーで除外した利用者、切り替えを隠した利用者、永続ライセンスの利用者、オンプレミスのアカウントの利用者は移行の対象にならないこと、移行した利用者もクラシック Outlook に戻れることも書かれています。カットオーバーの時期は筆者が参照した資料には書かれていませんでした。
カットオーバーのあとも、永続ライセンスとサブスクリプションで入れた既存のクラシック Outlook は、少なくとも2029年までサポートされます2。急いで全部を置き換える必要はありませんが、opt-out が始まると、何もしなければ利用者は新しい Outlook に移ります。そのときに止まる自動化を、opt-out が始まる前に洗い出しておきます。
新しい Outlook を使うには、Exchange Online につながった Microsoft 365 の職場または学校のアカウントが必要です。開発者向けの資料によると、新しい Outlook は現在、オンプレミス、ハイブリッド、ソブリンクラウドの Exchange のアカウントに対応していません3。
置き換えが済むまで移行を止める設定
置き換えが済んでいない部署があるなら、管理者は次の設定で移行を遅らせられます8。
- Microsoft 365 Apps 管理センターのクラウドポリシー「Hide the “Try the new Outlook” toggle in Outlook」で、クラシック Outlook の切り替えを隠す。
- ポリシー「Manage user setting for new Outlook automatic migration」を無効(0)にして、新しい Outlook への自動移行を止める。レジストリでは
NewOutlookMigrationUserSettingの値に当たる。このポリシーは、管理者が進める「Admin-Controlled Migration to New Outlook」による移行には適用されない。 - Exchange のメールボックスのポリシーで、職場のメールボックスを新しい Outlook に追加できないようにする。
flowchart TB
accTitle: 移行を遅らせる管理者の設定
accDescr: 切り替えの表示を隠すクラウドポリシー、自動移行を止めるポリシー、新しい Outlook でのメールボックスの利用を止めるメールボックスのポリシーの3つで、置き換えが済むまでクラシック Outlook を使い続けられることを示す。
ADMIN["管理者の設定"] --> P1["切り替えの表示を隠す"]
ADMIN --> P2["自動移行を止める"]
ADMIN --> P3["新しい Outlook でメールボックスを使わせない"]
P1 --> KEEP["置き換えが済むまでクラシック Outlook を使う"]
P2 --> KEEP
P3 --> KEEP
図3: 管理者は3つの設定で、置き換えが済むまで移行を遅らせられる。
これらの設定は時間を稼ぐためのもので、クラシック Outlook のサポートが終わる時期は変わりません。止めている間に置き換えを進めます。
止まる自動化を洗い出す
最初にするのは、Outlook に頼っている自動化の一覧を作ることです。次の順に調べます。
- COM アドインを一覧にする。 Microsoft 365 Apps 管理センターの Inventory のページで、組織の利用者の PC に入っている COM アドインを見てエクスポートできます4。PC ごとの一覧が要るときは、アドインを登録したレジストリのキーを Intune などの端末管理のツールで集めます。VSTO アドインの資料では、すべての利用者向けに入れたアドインは
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\Addinsに、入れた利用者だけが使うアドインはその利用者のHKEY_CURRENT_USERの同じパスに登録されます。ClickOnce で配ったアドインはHKEY_CURRENT_USERにしか登録されません。64ビットの Windows では、すべての利用者向けのアドインがHKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Office\Outlook\Addinsにも登録されることがあります9。HKEY_LOCAL_MACHINEだけを集めると、利用者ごとに入れたアドインを見落とします。利用者は Outlook の[ファイル]>[オプション]>[アドイン]で自分の PC のアドインを確かめられます。 - VBA マクロがあるかを確かめる。 「Microsoft VBA for Outlook Addin」が入っていても、マクロを使っているとは限りません。Microsoft の資料はいちばん簡単な確かめ方として、VBA エディターを開いて中身があるかを見る方法を挙げています4。ルールの処理からマクロを呼んでいないかも、利用者に聞きます。
- Outlook を外から操作するツールを探す。 Excel のマクロ入りのブック、PowerShell のスクリプト、社内で作った C# のアプリを、
Outlook.ApplicationやMicrosoft.Office.Interop.Outlookという文字列で検索します。タスクスケジューラーから定期的に動いているスクリプトも対象です。 - 見つけた自動化ごとに、何をしているかを書く。 次の表の項目を埋めます。
flowchart TB
accTitle: 止まる自動化を洗い出す手順
accDescr: COM アドインを管理センターと利用者ごと・PC全体のレジストリで一覧にし、VBA マクロの有無を確かめ、Outlook を外から操作するツールを文字列で探し、見つけた自動化ごとにきっかけや入出力を記録して置き換え先を選ぶ準備をする流れを示す。
A["COM アドインを一覧にする"] --> B["VBA マクロの有無を確かめる"]
B --> C["Outlook を外から操作するツールを探す"]
C --> D["自動化ごとにきっかけと入出力を書く"]
D --> E["置き換え先を選ぶ"]
図4: アドイン、マクロ、外部ツールの順に探し、見つけたものごとに中身を記録する。
| 記録する項目 | 書く内容の例 |
|---|---|
| きっかけ | 送信ボタンを押したとき、メールを受信したとき、毎朝9時、Excel のボタンを押したとき |
| 入力 | 宛先、件名、本文、添付ファイル、Excel の表 |
| 出力 | 送信を止める、フォルダーにファイルを保存する、システムに登録する、メールを送る |
| 使う人 | 全社、特定の部署、特定の担当者 |
| 止まったときの影響 | 誤送信の確認が抜ける、請求書の処理が遅れる、など |
| 作った人と資料 | 社内の担当者、外部のベンダー、ソースコードの有無 |
洗い出すと、Microsoft 製の COM アドインも一覧に出てきます。Microsoft の資料は、Teams 会議のアドインのように新しい Outlook に組み込みの機能があるものや、すでに役目を終えたものについて、代わりの手段を示しています4。自社や外部のベンダーが作ったアドインとは分けて扱うと、置き換えを考える対象が絞れます。Excel のマクロを広く点検する方法は「VBScript廃止に備えるVBA・社内ツール点検ガイド」で説明しています。
置き換え先の4つの選択肢
置き換え先は処理をどこで動かすかで4つに分かれます。
- Outlook の Web アドイン: 利用者の Outlook の中で、メールを書いているときや読んでいるときに動く。
- Power Automate のクラウドフロー: Microsoft のクラウドで、メールの受信や時刻をきっかけに動く。
- Microsoft Graph: 自社のプログラムやスクリプトから API を呼んで、メールの送信や受信したメールの読み取りをする。
- Exchange Online のメールフロールール: Exchange Online のサーバーで、配送の途中にあるメールに条件と処理をかける。
flowchart TB
accTitle: 置き換え先ごとに処理が動く場所
accDescr: Outlook の Web アドインは利用者の Outlook の中で、Power Automate のクラウドフローは Microsoft のクラウドで、Microsoft Graph は自社のプログラムから呼び出して、メールフロールールは Exchange Online のサーバーで配送の途中に動くことを示す。
WHERE["処理が動く場所"] --> U["利用者の Outlook"]
WHERE --> C["Microsoft のクラウド"]
WHERE --> S["自社のプログラム"]
WHERE --> X["配送の途中"]
U --> W["Web アドイン"]
C --> P["クラウドフロー"]
S --> G["Graph の API"]
X --> R["メールフロールール"]
図5: 4つの置き換え先は、処理が動く場所が違う。
VBA や COM アドインは利用者の PC の Outlook の中で、メールボックスにも PC のファイルにも触れながら動いていました。置き換え先ではその処理を場所ごとに分けて受け持ちます。1つの VBA マクロを、Web アドインと Power Automate のフローの2つに分けて置き換えることもあります。
Outlook の Web アドイン
Outlook の Web アドインは Office アドイン(Office Add-ins)の仕組みを使い、HTML と JavaScript で作るアドインです。新しい Outlook とクラシック Outlook の両方で動き、Outlook on the web や Mac の Outlook でも使えます3。新しい Outlook に初めて切り替えた利用者は、クラシック Outlook のアドインを入れるかを選べます。COM アドインは使えないので、対応する Web アドインがあればそちらが入ります3。
送信前の確認を置き換えるときに使うのは、イベントベースのアクティブ化と Smart Alerts です。イベントベースのアクティブ化は、新しいメールを作る、宛先を変える、添付ファイルを足す、といったイベントに応じて、利用者が操作しなくてもアドインを起動する仕組みです10。Smart Alerts はこの仕組みを使い、利用者が[送信]を押したあとに OnMessageSend イベントで処理を動かします11。添付ファイルを付け忘れていないか、社外の宛先が混ざっていないかを確かめ、条件を満たさなければ送信を止めて理由を表示できます。OnMessageSend は Outlook の要件セット1.12で入りました11。
条件を満たさなかったときやアドインを読み込めなかったときの動きは、マニフェストの送信モードで決めます11。
| 送信モード | 条件を満たさないとき | アドインを読み込めないとき |
|---|---|---|
| prompt user | 利用者は「Send Anyway」で送れる | 送信される |
| soft block(既定) | 問題を直すまで送れない | 送信される |
| block | 問題を直すまで送れない | 送れない |
flowchart TB
accTitle: Smart Alerts の送信モードによる動きの違い
accDescr: 送信ボタンを押すと Smart Alerts のアドインが条件を確かめ、条件を満たせば送信され、満たさないとき prompt user は利用者が送るかを選べ、soft block と block は問題を直すまで送れないこと、アドインを読み込めないときは block だけが送信を止めることを示す。
SEND["利用者が送信を押す"] --> CHECK["アドインが条件を確かめる"]
CHECK -->|"満たす"| OK["送信される"]
CHECK -->|"満たさない"| MODE["送信モードで分かれる"]
MODE --> PU["prompt user: 利用者が送るかを選ぶ"]
MODE --> SB["soft block・block: 直すまで送れない"]
SEND -.-> NA["アドインを読み込めない"]
NA -.-> NB["block だけが送信を止める"]
図6: 条件を満たさないときとアドインを読み込めないときの動きは、送信モードで変わる。
送信ボタンを押したときの処理の骨組みは、次のようになります。これは仕組みを示すための例示で、このまま動かして確かめたコードではありません。マニフェストでのイベントと送信モードの指定も別に要ります。
// 例示: Smart Alerts の送信時の処理の骨組み(動作は未確認)
function onMessageSendHandler(event) {
// ここで宛先・件名・添付ファイルなどを確かめる
const passed = true; // 確かめた結果
if (passed) {
event.completed({ allowEvent: true });
} else {
event.completed({
allowEvent: false,
errorMessage: "社外の宛先に添付ファイルを送る前に、宛先を確認してください。"
});
}
}
Office.actions.associate("onMessageSendHandler", onMessageSendHandler);
Web アドインには、VBA や COM アドインにはなかった制約があります。
- イベントで起動するアドインは、管理者が Microsoft 365 管理センターから配布したときだけ自動で起動します10。送信モードを block にしたアドインは、Microsoft Marketplace には出せず、組織の管理者が配布するものに限られます11。
- イベントで起動するアドインは、起動にインターネットへの接続が必要です。起動から約300秒で時間切れになります10。送信時の処理が5秒を超えると、利用者に時間がかかっていることを知らせる画面が出ます11。重い確認は宛先や添付ファイルを変えたときのイベントで先に済ませておくよう、資料は勧めています。
- 新しい Outlook では、オフラインのときアドインは使えません3。オフラインで起動したときも送信前の確認を必ず通したいなら、Exchange Online のメールボックスのポリシー
OnSendAddinsEnabledを有効にします。有効にすると、オフラインで送ったメールは送信されずに下書きに保存されます11。 - COM アドインでできたことが、すべて Web アドインでできるわけではありません。開発者向けの資料の対応表では、メッセージの暗号化と外部システムとのデータの同期は一部だけ対応、書いている途中の文章の校正は対応していません3。
Power Automate のクラウドフロー
受信したメールをきっかけにする処理は、Power Automate のクラウドフローに移せます。Office 365 Outlook コネクタのトリガー「When a new email arrives (V3)」でメールの受信を受け、添付ファイルを保存したり、内容を別のシステムに渡したりします。Excel の表をもとにメールを送る処理は、アクション「Send an email (V2)」で組めます12。
クラウドフローは Microsoft のクラウドで動くので、利用者がどちらの Outlook を使っているかに左右されません。利用者の PC が止まっていても動きます。
flowchart TB
accTitle: 受信メールの添付ファイルを保存するクラウドフロー
accDescr: メールが届くと Office 365 Outlook コネクタのトリガーがフローを始め、添付ファイルを別のアクションで取り出して保存先に置き、担当者に通知する流れを示す。
IN["メールが届く"] --> TR["トリガー: When a new email arrives(V3)"]
TR --> GA["添付ファイルを取り出す"]
GA --> SAVE["保存先に置く"]
SAVE --> NOTE["担当者に通知する"]
図7: 受信をきっかけに、添付ファイルを取り出して保存し、通知する。
コネクタの資料には、次の注意点があります12。
- 使うには、REST API が有効な Office 365 のメールボックスが必要です。オンプレミスの Exchange Server にあるメールボックスでは、エラーになることがあります。
- トリガーで「Include Attachments」を「はい」にすると、添付ファイルをすべてダウンロードするまで待ちます。添付ファイル付きのメールが同時にたくさん届くと時間切れになることがあるので、資料は「いいえ」にして、アクション「Get Attachment (V2)」で取り出す形を勧めています。
- メールの内容の大きさの上限は49MBです。
添付ファイルを保存するフローの組み方は「メールで届く注文書・請求書PDFをPower Automateで自動処理する」、Excel の VBA をどこまで Power Automate に移せるかは「ExcelマクロVBAをPower Automateへ移行する」で説明しています。
Microsoft Graph
Microsoft Graph は Microsoft 365 のデータと機能を REST API として使えるようにしたものです。メールの API で扱えるのは、Exchange Online にある利用者のメールボックスと共有メールボックスです13。メールの送信は POST /me/sendMail で、許可は Mail.Send が要ります。要求が受け付けられると 202 Accepted が返り、既定では送ったメールが送信済みアイテムに保存されます14。受信したメールの添付ファイルは、GET /me/messages/{id}/attachments で一覧を取れて、許可は Mail.Read が要ります15。
Excel の VBA から OOM で送っていたツールは、サーバーやスクリプトから Graph を呼ぶ形に置き換えられます。Outlook を起動しないので、利用者の PC に Outlook がなくても動きます。
flowchart TB
accTitle: OOM で送るツールを Microsoft Graph に置き換える
accDescr: 置き換え前は Excel の VBA が OOM でクラシック Outlook を操作してメールを送り、置き換え後は自社のプログラムやスクリプトが Microsoft Graph の sendMail を呼んで Exchange Online からメールを送ることを示す。
subgraph before ["置き換え前"]
B1["Excel の VBA"] --> B2["OOM でクラシック Outlook を操作"]
B2 --> B3["メールを送る"]
end
subgraph after ["置き換え後"]
A1["自社のプログラムやスクリプト"] --> A2["Microsoft Graph の sendMail を呼ぶ"]
A2 --> A3["Exchange Online からメールを送る"]
end
B3 -.-> A1
図8: Outlook を操作する代わりに、プログラムから Graph の API を呼ぶ。
sendMail に渡す要求の本文は次のような形です。宛先と本文は例示の値です。
{
"message": {
"subject": "見積書の送付",
"body": {
"contentType": "Text",
"content": "見積書をお送りします。"
},
"toRecipients": [
{ "emailAddress": { "address": "customer@example.com" } }
]
}
}
プログラムから Graph を使うには、Microsoft Entra ID へのアプリの登録と、Mail.Send などの許可が要ります。どのメールボックスから送るか、誰がその許可を管理するかを、Microsoft 365 の管理者と決めておきます。PowerShell から Graph を使う方法は「Microsoft Graph PowerShell入門」で説明しています。
Exchange Online のメールフロールール
メールフロールール(トランスポートルールとも呼ばれます)は、Exchange Online の組織の中を流れるメールに対して、条件に合うものを見つけて処理をかける仕組みです。利用者の Outlook の中ではなく、配送の途中で動きます16。件名、本文、添付ファイル、宛先などを条件にでき、処理には拒否、別の宛先へのリダイレクト、宛先の追加、件名への語の追加、免責文の挿入などがあります。
flowchart TB
accTitle: メールフロールールが動く場所
accDescr: 利用者がどちらの Outlook から送ってもメールは Exchange Online の配送を通り、そこでメールフロールールが条件に合うメールに拒否、リダイレクト、宛先の追加、免責文の挿入などの処理をかけてから宛先に届くことを示す。
N["新しい Outlook から送る"] --> T["Exchange Online の配送"]
C["クラシック Outlook から送る"] --> T
T --> RULE["メールフロールールが条件を確かめる"]
RULE --> ACT["拒否・リダイレクト・宛先の追加・免責文など"]
ACT --> DEST["宛先に届く"]
図9: メールフロールールはどの Outlook から送っても配送の途中で動く。
どの Outlook から送っても同じ規則がかかるので、全社で例外なく守らせたい処理に向きます。一方で、配送の途中で動くので、Smart Alerts のように送信の時点で利用者に画面で確かめさせる用途には向きません。ルールを作ったり変えたりしてからメールに適用されるまでに、最大30分かかることがあります16。ルールは Exchange 管理センターか PowerShell で設定するので、作るのも直すのも管理者です。
よくある自動化と置き換え先の判断表
ここまでの4つを、Outlook でよく作られている自動化に当てはめると、次のようになります。
| 自動化 | クラシック Outlook での作り方の例 | 第一の候補 | 次の候補と注意 |
|---|---|---|---|
| 送信前の確認(宛先・添付ファイル・件名) | COM アドイン、VBA マクロ | Web アドインの Smart Alerts | 全社で例外なく止めたい条件は、メールフロールールの拒否やリダイレクトも使える |
| 受信したメールの添付ファイルの保存 | ルールから呼ぶ VBA マクロ | Power Automate のクラウドフロー | 件数が多いものや独自の処理が要るものは、Graph を呼ぶプログラム |
| メールの内容を社内のシステムに登録する | COM アドイン、VBA マクロ | 受信をきっかけにするなら Power Automate か Graph | 利用者がメールを選んで登録するなら、Web アドインの作業ウィンドウ |
| Excel の表をもとにメールを一斉に送る | Excel の VBA から OOM | Power Automate の「Send an email (V2)」 | 件数が多いもの、他のシステムと組み合わせるものは Graph の sendMail |
| ルールから VBA マクロを実行する | ルールの処理からマクロを呼ぶ | マクロの中身に応じて上の行の置き換え先 | 振り分けだけなら新しい Outlook のルールで足りるかを確かめる |
| 全員のメールに同じ処理をかける(免責文の挿入、宛先の追加) | 各 PC の COM アドインや VBA マクロ | メールフロールール | 送信の時点で利用者に画面で確かめさせる処理には向かない |
表の候補は、ここまでに見た各置き換え先の動く場所と制約から選んでいます。迷ったときは、次の順に問いを立てると絞れます。
flowchart TB
accTitle: 置き換え先を選ぶ順序
accDescr: 送信前に利用者の画面で確認が要るなら Web アドイン、組織の全員のメールに同じ規則をかけるならメールフロールール、受信や時刻をきっかけにした処理で用意されたアクションで足りるなら Power Automate、それ以外は Microsoft Graph を呼ぶプログラムを選び、どれでも置き換えられない処理はクラシック Outlook に残す期間を決めることを示す。
Q1{"送信前に画面で確認するか"} -->|"はい"| W["Web アドイン"]
Q1 -->|"いいえ"| Q2{"全員のメールに同じ規則か"}
Q2 -->|"はい"| R["メールフロールール"]
Q2 -->|"いいえ"| Q3{"用意されたアクションで足りるか"}
Q3 -->|"はい"| P["Power Automate"]
Q3 -->|"いいえ"| G["Graph を呼ぶプログラム"]
G -.-> K["置き換えられないものは残す期間を決める"]
図10: 利用者の画面、組織の全体、用意されたアクションの順に問うと、置き換え先が絞れる。
移行の進め方
Microsoft は移行の準備として、利用者や特別な要件を持つチームと話すこと、新しい Outlook が既存の業務の流れに与える影響を確かめる範囲を決めること、準備の計画を立てることを挙げています2。Outlook の自動化については次の順に進めます。
- 洗い出した自動化ごとに、置き換え先と担当者を決める。
- 置き換えを作り、一部の利用者で試す。この間、利用者はクラシック Outlook と新しい Outlook を並べて動かせます2。
- 置き換えが動くことを確かめたら、その部署の移行を止める設定を外す。
- 置き換えられない処理はクラシック Outlook に残す部署と期間を決め、少なくとも2029年までというサポートの期間の中で見直す。
flowchart TB
accTitle: Outlook の自動化を移行する進め方
accDescr: 洗い出した自動化ごとに置き換え先と担当者を決め、置き換えを作って一部の利用者で試し、動きを確かめてから移行を止める設定を外し、置き換えられない処理はクラシック Outlook に残す部署と期間を決めることを示す。
A["置き換え先と担当者を決める"] --> B["置き換えを作る"]
B --> C["一部の利用者で試す(2つの Outlook を並べて使う)"]
C --> D["移行を止める設定を外す"]
A -.-> E["置き換えられない処理はクラシック Outlook に残す期間を決める"]
図11: 置き換えを作って試してから、その部署の移行を進める。
COM アドインや VBA で作った自動化は、作った人が社内に残っていないことがあります。中身が分からないものは、まずクラシック Outlook の上で何をしているかを確かめ、図4の手順で記録してから置き換え先を選びます。VBA が向く処理と向かない処理の見分け方は「VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン」、COM そのものの説明は「COM / ActiveX / OCX とは何か」にまとめています。
関連記事
- メールで届く注文書・請求書PDFをPower Automateで自動処理する
- ExcelマクロVBAをPower Automateへ移行する
- Microsoft Graph PowerShell入門
- VBScript廃止に備えるVBA・社内ツール点検ガイド
- VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン
- Outlookはなぜメールを開く前にNTLM応答を送ったのか?
参考リンク
-
Microsoft Support, Feature comparison between new Outlook and classic Outlook. COM アドイン、VBA マクロ、OOM、MAPI、ルールのインポート/エクスポートが新しい Outlook で「Not supported」、ルール、クイック操作、.pst、オフラインが「Partially available」であること(2026年9月23日更新)。 ↩ ↩2 ↩3
-
Microsoft Learn, Stages of migration to new Outlook for Windows. opt-in、opt-out、カットオーバーの3段階、少なくとも12か月前の通知、既存のクラシック Outlook の少なくとも2029年までのサポート、移行の準備(2026年2月23日更新)。 ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Develop Outlook add-ins for the new Outlook on Windows. 新しい Outlook が VSTO と COM のアドインをサポートしないこと、Web アドインへの移行、クラシック Outlook での VSTO と COM のアドインの扱い、Web アドインで対応する場面の表、対応するアカウント、オフラインでのアドインの動き。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Microsoft Learn, Identify COM add-ins in your organization. Microsoft 365 Apps 管理センターの Inventory、COM アドインのレジストリのキー、Microsoft 製の COM アドインとその代わり、Microsoft VBA for Outlook Addin の説明。 ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, Outlook object model for Visual Basic for Applications (VBA). Outlook のオブジェクトモデルのオブジェクト・プロパティ・メソッド・イベントのリファレンス。 ↩
-
Microsoft Learn, Automating Outlook from a Visual Basic Application. 他のアプリケーションから CreateObject や New で Outlook を起動して操作する方法。 ↩
-
Microsoft 365 メッセージセンター, MC949965 - Toggle to new Outlook(mc.merill.net による公開の写し). Enterprise の環境での opt-out の開始を2027年3月に変えたこと、移行の対象にならない利用者、クラシック Outlook に戻れること(2026年2月20日更新)。 ↩
-
Microsoft Learn, Control installing and using new Outlook. 切り替えを隠すクラウドポリシー、自動移行を止めるポリシーと NewOutlookMigrationUserSetting、メールボックスのポリシーで新しい Outlook での利用を止める方法。 ↩
-
Microsoft Learn, Registry entries for VSTO Add-ins. 現在の利用者向けとすべての利用者向けの登録先(HKEY_CURRENT_USER と HKEY_LOCAL_MACHINE)、ClickOnce での配布は HKEY_CURRENT_USER だけに登録されること、64ビットの Windows での WOW6432Node への登録。 ↩
-
Microsoft Learn, Activate add-ins with events. イベントベースのアクティブ化の仕組み、対応するイベント、管理者による配布が必要なこと、インターネット接続と約300秒の時間切れ。 ↩ ↩2 ↩3
-
Microsoft Learn, Handle OnMessageSend and OnAppointmentSend events in your Outlook add-in with Smart Alerts. Smart Alerts と要件セット1.12、送信モードごとの動き、長くかかる処理の扱い、OnSendAddinsEnabled のポリシー、block のアドインの配布の制限。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Microsoft Learn, Office 365 Outlook connector. トリガー When a new email arrives (V3) とアクション Send an email (V2)、Include Attachments と Get Attachment (V2) の使い分け、必要なメールボックス、メールの内容の大きさの上限。 ↩ ↩2
-
Microsoft Learn, Outlook mail API overview. Microsoft Graph のメールの API が、Exchange Online にある利用者のメールボックスと共有メールボックスのデータを扱うこと。 ↩
-
Microsoft Learn, user: sendMail. sendMail の要求、必要な許可 Mail.Send、202 Accepted の応答、送信済みアイテムへの保存。 ↩
-
Microsoft Learn, List attachments. メッセージの添付ファイルの一覧の取得と、必要な許可 Mail.Read。 ↩
-
Microsoft Learn, Mail flow rules (transport rules) in Exchange Online. 配送の途中のメールに条件と処理をかける仕組み、条件と処理の例、設定の場所、変更が適用されるまでの時間。 ↩ ↩2
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
メールで届く注文書・請求書PDFをPower Automateで自動処理する ── 保存・振り分け・通知・読み取りの設計
メールで届く注文書・請求書PDFの保存・振り分け・通知をPower Automateで自動化する設計を整理します。Outlookトリガーと共有メールボックスの前提、署名画像の誤検知対策、AI Builderによる読み取りとライセンスの注意点まで実務者視点で解説します。
ExcelマクロVBAをPower Automateへ移行する ── Officeスクリプトで置き換える範囲と、VBAのまま残す範囲
Excel VBAマクロをPower Automateへ移行できるかを整理します。Officeスクリプトで置き換えられる範囲とVBAにしかできないこと、コネクタの制限値、ライセンス要件、棚卸しから始める段階移行の進め方まで解説します。
Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計
Power Automateのクラウドフローとデスクトップフローの違い、PowerShell/VBAとの使い分け、ライセンス、エラー処理、UI自動化の安定化、認証情報の安全な扱いまで、業務自動化を運用に乗せるための実践的な設計指針を整理します。
Power AutomateとPowerShell+タスクスケジューラの使い分け ── 自動化の道具を混ぜずに適材適所でつなぐ
PowerShell+タスクスケジューラの夜間バッチとPower Automateフローが社内に混在し始めた中小企業の情シス向けに、両者の得意分野の違い、どちらで作るかの判断表、SharePoint経由で疎結合につなぐ連携パターン、ライセンスと保守の注意点まで整理します。
Power Automateの属人化対策 ── 作った人が辞めてもフローが止まらないために
Power Automateのフローが作成者の退職・異動で止まる属人化リスクへの対策を整理。所有者削除時の挙動、共同所有者の設定、孤立フローの引き継ぎ、実行アカウントの設計、フロー台帳による棚卸しまで解説します。
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
高難易度Windowsアプリ開発
COM アドインや VBA で作った Outlook の自動化を、Outlook の Web アドインや Microsoft Graph を使うプログラムに作り直す開発を相談できます。
技術相談・設計レビュー
どの自動化が新しい Outlook で止まるかの洗い出しと、Web アドイン・Power Automate・Microsoft Graph・メールフロールールのどれに置き換えるかの判断を、技術相談として一緒に整理できます。
よくある質問
この記事のテーマについて、相談時によくある質問をまとめています。
- 新しい Outlook では VBA マクロは動きますか?
- 動きません。Microsoft の機能比較表では、新しい Outlook の VBA マクロは「Not supported」です。COM アドインと Outlook オブジェクトモデル(OOM)も同じく使えません。クラシック Outlook では引き続き動くので、置き換えが済むまでクラシック Outlook を使い続けることはできます。
- クラシック Outlook はいつまで使えますか?
- Microsoft の資料では、永続ライセンスとサブスクリプションで入れた既存のクラシック Outlook は、少なくとも2029年までサポートされます。切り替えは opt-in、opt-out、カットオーバーの3段階で進み、opt-out とカットオーバーの前には、管理者に少なくとも12か月前に通知するとされています。
- Excel の VBA から Outlook を操作してメールを送るツールも影響を受けますか?
- 受けます。Excel の VBA から CreateObject("Outlook.Application") で Outlook を操作するツールは、Outlook オブジェクトモデル(OOM)を使っています。新しい Outlook は OOM を持たないので、クラシック Outlook のない PC ではこの方法で送れません。Power Automate のクラウドフローや Microsoft Graph の sendMail での送信に置き換えます。
- 送信前に宛先や添付ファイルを確認するアドインは、何に置き換えればよいですか?
- Outlook の Web アドインの Smart Alerts(OnMessageSend イベント)が第一の候補です。送信ボタンを押したあとに確認の処理を動かし、条件を満たさなければ送信を止めて理由を表示できます。ただし、イベントで起動するアドインは管理者が配布したときだけ動き、インターネットへの接続も必要です。