VBAの制約と置き換え先の知識マップ(知識グラフ)
type: Dataset
description: VBAはOfficeデスクトップアプリの内側で動くイベント駆動言語で、Excel for the webでは作成・実行・編集ができず、インターネット由来ファイルのマクロは既定でブロックされます。このブロックは信頼できる場所・信頼済みサイト・信頼された発行元とコード署名証明書といった仕組みで個別に回避できます。VBAはOfficeのサーバー側自動化には向かず、Microsoftは無人での帳票生成にOpen XML形式による直接生成を推奨しています。古いDeclare文は64bitのOfficeで動かないことがあり、外部.vbsの実行やVBScript.RegExpへの依存はVBScriptの段階的廃止の影響を受け得ます。置き換え先は一つではなく、重い業務ロジックは.NET DLLへ、クロスプラットフォーム拡張はOffice Add-insへ、M365上のワークフローはOffice ScriptsとPower Automateへと、責務ごとに分けるのが現実的です。

VBA(Visual Basic for Applications)
type: Concept
definition: Officeアプリケーションに組み込まれたBASIC系のマクロ言語で、ExcelやAccessなどからCOMコンポーネントを呼び出せる。
alternative label: Visual Basic for Applications
incompatible with: Excel for the web
incompatible with: クロスプラットフォームのOffice拡張
configured by: 信頼できる場所
configured by: 信頼済みサイト/ローカル イントラネット ゾーン
configured by: 信頼された発行元ストア
not recommended for: サーバーサイドのOffice自動化
not recommended for: M365上のクラウドワークフロー

Excel for the web
type: Concept
definition: ブラウザ上で動くExcelのWeb版で、VBAマクロの作成・実行・編集はできない。
alternative label: Excel Online

インターネット由来マクロの既定ブロック
type: Concept
definition: インターネット由来のOfficeファイルに含まれるVBAマクロの実行を、既定でブロックするMicrosoftのセキュリティ既定値。
alternative label: Macros from the internet are blocked by default

Zone.Identifier(Mark of the Web)
type: Concept
definition: ブラウザーなどでダウンロードしたファイルに付与される代替データストリーム。ファイルの出所(インターネット由来など)を記録し、SmartScreenや保護ビューの判定材料になる。
alternative label: Mark of the Web
alternative label: MOTW
broader: alternate-data-stream
may cause: インターネット由来マクロの既定ブロック

信頼できる場所
type: Concept
definition: 指定したフォルダーに置いたOfficeファイルは、Mark of the Webの確認を飛ばしてマクロを実行できるようにする設定。
alternative label: Trusted Location

信頼済みサイト/ローカル イントラネット ゾーン
type: Concept
definition: ファイルサーバーやSharePointのドメインをInternet Explorerセキュリティゾーンへ登録し、そこに置かれたOfficeファイルのマクロブロックを回避する設定。
alternative label: Trusted Sites Zone

信頼された発行元ストア
type: Concept
definition: 信頼する発行元のコード署名証明書を登録する論理ストア。
alternative label: TrustedPublisher
broader: certificate-store
requires: コード署名証明書

コード署名証明書
type: Concept
definition: ソフトウェアの発行元を証明し、改ざんを検出するための証明書。
alternative label: Authenticode証明書

サーバーサイドのOffice自動化
type: Concept
definition: ASP.NET、DCOM、NTサービスなど無人・非対話のクライアントアプリケーションやコンポーネントからOfficeアプリを自動操作すること。Microsoftは推奨せずサポートもしないと明言している。
alternative label: 無人・非対話のOffice Automation
not recommended for: 無人帳票生成

Open XML形式
type: Concept
definition: Excelアプリを起動せずに、Officeファイルの中身を直接組み立てるためのファイル形式。無人での帳票生成の代替手段として推奨される。
alternative label: Open XML
recommended for: 無人帳票生成

無人帳票生成
type: Concept
definition: 夜間バッチやサービスなど、人手を介さずにExcel帳票などを大量生成する要件。
alternative label: 夜間バッチでの帳票大量生成

bitness一致要件
type: Concept
definition: ネイティブモジュール(in-procのCOMコンポーネント、P/Invokeで呼ぶDLL、ベンダー提供SDKのDLLなど)を読み込むホストプロセスと、そのモジュールのビット構成(32bit/64bit)が一致していなければならないという制約。
alternative label: 32bit/64bitの一致
alternative label: bitness match

VBAの64bit対応(PtrSafe/LongPtr)
type: Concept
definition: WindowsAPIをDeclareで呼ぶ古いVBAコードを、PtrSafe・LongPtr・LongLongなどで32bit/64bitの差を吸収できるよう書き直す対応。
alternative label: 64-bit VBA対応

COM(コンポーネントオブジェクトモデル)
type: Concept
definition: 公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。
alternative label: Component Object Model

ActiveX
type: Concept
definition: 実務ではCOMベースのコントロールやその周辺資産をまとめて指す言葉として使われる技術群。特に.ocx形式のUIコントロールやIE/コンテナへ埋め込む部品を含むことが多い。
alternative label: ActiveXコントロール
broader: COM(コンポーネントオブジェクトモデル)

OCX
type: Concept
definition: ActiveXコントロールの実体を持つ.ocx形式のファイル。in-procの形態でホストプロセスに読み込まれる。
alternative label: .ocxファイル
alternative label: OLEカスタムコントロール
broader: ActiveX

クロスプラットフォームのOffice拡張
type: Concept
definition: Windows/Mac/iPad/ブラウザなど複数プラットフォームをまたいで同じ拡張機能を使いたいという要件。

Office Add-ins
type: Concept
definition: HTML/CSS/JavaScriptで構築し、Windows/Mac/iPad/ブラウザをまたいで動作しつつ中央配布にも向く、Officeのクロスプラットフォーム拡張の仕組み。
recommended for: クロスプラットフォームのOffice拡張

M365上のクラウドワークフロー
type: Concept
definition: OneDrive・SharePoint・Teams・Outlook・FormsなどM365上のブックやデータを回す業務フロー。
alternative label: OneDrive/SharePoint上のブックを回すワークフロー

Officeスクリプト(Office Scripts)
type: Concept
definition: TypeScriptでExcelを操作するスクリプト機能で、Excel専用でブックにのみアクセスでき、Power Automateのクラウドフローから呼び出せる。
alternative label: Office Scripts
recommended for: M365上のクラウドワークフロー

Power Automate
type: Concept
definition: Microsoft Formsなどのトリガーから、SharePointへの転記や通知などのアクションを自動化するMicrosoftのクラウドフローサービス。Formsコネクタにはトリガー「新しい応答が送信されるとき」とアクション「応答の詳細を取得」がある。
alternative label: クラウドフロー

VBScript.RegExp/外部.vbs依存
type: Concept
definition: VBAプロジェクトが外部の.vbsファイルを実行したり、VBScript.RegExpを参照設定または遅延バインディングで使ったりしている状態。
alternative label: VBScript.RegExp参照

VBScriptの段階的廃止
type: Concept
definition: Windowsにおいて進められている、VBScriptを段階的に廃止していく取り組み。
alternative label: VBScript deprecation

.NET(Core以降)
type: Concept
definition: .NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。
alternative label: .NET Core
alternative label: モダンな.NET
recommended for: VBA(Visual Basic for Applications)

subject: VBA(Visual Basic for Applications)
predicate: incompatibleWith
object: Excel for the web
description: Excel for the webではVBAマクロの作成・実行・編集ができない
verified at: 2026-08-01
certainty: established

subject: インターネット由来マクロの既定ブロック
predicate: prevents
object: VBA(Visual Basic for Applications)
description: インターネット由来のOfficeファイルに含まれるVBAマクロの実行は、既定でブロックされる
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: context-dependent

subject: Zone.Identifier(Mark of the Web)
predicate: mayCause
object: インターネット由来マクロの既定ブロック
description: ダウンロードしたファイルに付与されるMark of the Web(Zone.Identifier)が、Officeの既定のマクロブロックが働く判定材料になる
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: configuredBy
object: 信頼できる場所
description: 信頼できる場所に置いたファイルは、Mark of the Webの確認を飛ばしてVBAマクロを実行できるよう構成できる
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: configuredBy
object: 信頼済みサイト/ローカル イントラネット ゾーン
description: 信頼済みサイトやローカル イントラネット ゾーンへドメインを登録すると、そこに置かれたファイルのVBAマクロブロックを回避できる
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: configuredBy
object: 信頼された発行元ストア
description: マクロにコード署名し、その証明書を信頼された発行元へ登録することでも、既定のマクロブロックを回避してVBAを実行できる
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: established

subject: 信頼された発行元ストア
predicate: requires
object: コード署名証明書
description: 信頼された発行元によるマクロ実行の許可は、マクロへのコード署名証明書の付与を前提とする
evidence: internet-macros-blocked
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: notRecommendedFor
object: サーバーサイドのOffice自動化
description: Officeは対話的なデスクトップとユーザープロファイルを前提に設計されており、VBAを介したサーバー側自動化は無人環境で不安定やデッドロックを起こし得るため推奨されない
verified at: 2026-08-01
certainty: established

subject: Open XML形式
predicate: recommendedFor
object: 無人帳票生成
description: 無人での帳票大量生成には、Excelアプリを起動する自動化ではなくOpen XML形式などでファイルを直接組み立てる方法が推奨される
verified at: 2026-08-01
certainty: established

subject: サーバーサイドのOffice自動化
predicate: notRecommendedFor
object: 無人帳票生成
description: Officeアプリを起動するサーバー側自動化は、無人帳票生成の手段としては推奨されない
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: requires
object: bitness一致要件
description: Declareで32bit専用の外部DLLやin-proc COMコンポーネントを呼んでいるVBAコードに限り、Office 2019/Microsoft 365の既定64bit環境でこのbitness一致要件の対象になる。そうした依存を持たないVBAコード一般には当てはまらない
evidence: 64-bit-visual-basic-for-applications-overview
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: requires
object: VBAの64bit対応(PtrSafe/LongPtr)
description: Declareで外部APIを呼ぶ古いVBAコードを64bit環境で動かすには、PtrSafe・LongPtr・LongLongなどによる対応が前提となる
evidence: 64-bit-visual-basic-for-applications-overview
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: uses
object: COM(コンポーネントオブジェクトモデル)
description: 古いVBAコードは、COMコンポーネントへの依存を持つことがある
evidence: 64-bit-visual-basic-for-applications-overview
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: uses
object: ActiveX
description: 古いVBAコードは、ActiveXコントロールへの依存を持つことがある
evidence: 64-bit-visual-basic-for-applications-overview
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: uses
object: OCX
description: 古いVBAコードは、OCXコントロールへの依存を持つことがある
evidence: 64-bit-visual-basic-for-applications-overview
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: incompatibleWith
object: クロスプラットフォームのOffice拡張
description: VBAはデスクトップ版Officeの内側でのみ動く技術で、複数プラットフォームをまたぐ拡張の実現手段にはならない
evidence: language-reference
verified at: 2026-08-01
certainty: established

subject: Office Add-ins
predicate: recommendedFor
object: クロスプラットフォームのOffice拡張
description: 複数プラットフォーム向けの拡張を作りたい場合は、Office Add-insを見るべきとされている
evidence: office-add-ins
verified at: 2026-08-01
certainty: established

subject: VBA(Visual Basic for Applications)
predicate: notRecommendedFor
object: M365上のクラウドワークフロー
description: デスクトップ中心のVBAは、OneDrive/SharePoint上のブックをM365ワークフローで回す用途には向かない
evidence: vba-differences
verified at: 2026-08-01
certainty: established

subject: Officeスクリプト(Office Scripts)
predicate: recommendedFor
object: M365上のクラウドワークフロー
description: Office Scriptsは、安全でクロスプラットフォームなクラウドベースのソリューション向けとしてM365上のワークフローに推奨される
evidence: vba-differences
verified at: 2026-08-01
certainty: established

subject: Power Automate
predicate: uses
object: Officeスクリプト(Office Scripts)
description: VBAからの移行先としてExcelブックの処理をフローに組み込む場合、Power AutomateはRun scriptアクションなどを通じてOffice Scriptsを呼び出して実行できる
evidence: power-automate-integration
verified at: 2026-08-01
certainty: context-dependent

subject: VBA(Visual Basic for Applications)
predicate: requires
object: VBScript.RegExp/外部.vbs依存
description: 外部.vbsの実行やVBScript.RegExpの参照設定・遅延バインディングに依存しているVBAプロジェクトに限り、この依存が前提となる
evidence: how-to-prepare-vba-projects-for-vbscript-deprecation
verified at: 2026-08-01
certainty: context-dependent

subject: VBScript.RegExp/外部.vbs依存
predicate: incompatibleWith
object: VBScriptの段階的廃止
description: 外部.vbsの実行やVBScript.RegExpへの依存は、進行中のVBScript段階的廃止の影響を受け得る。RegExpについてはMicrosoft 365 Version 2508以降でVBA側に既定で含める対応が進んでいる
evidence: how-to-prepare-vba-projects-for-vbscript-deprecation
verified at: 2026-08-01
certainty: context-dependent

subject: .NET(Core以降)
predicate: recommendedFor
object: VBA(Visual Basic for Applications)
description: VBAに残す範囲を薄くし、重い業務ロジックやHTTP・暗号・CSV/JSON処理は.NET DLLや別プロセスへ出す構成が、本記事の推奨である
evidence: registration-free-com-interop
verified at: 2026-08-01
certainty: established