知識マップ: VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン
記事「VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
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へと、責務ごとに分けるのが現実的です。
flowchart LR
accTitle: VBAの制約と置き換え先の知識マップ
accDescr: VBAがOfficeデスクトップの内側に閉じた拡張言語であること、Excel for the webとの非互換、既定のマクロブロックと信頼できる場所・信頼済みサイト・信頼された発行元による回避、サーバー側自動化の非推奨とOpen XMLへの代替、bitnessやVBScript依存という制約、Office ScriptsやOffice Add-insや.NETへの責務ごとの置き換え先を示す図
vba["VBA(Visual Basic for Applications)"]
excel_for_the_web["Excel for the web"]
macro_block_policy["インターネット由来マクロの既定ブロック"]
zone_identifier["Zone.Identifier(Mark of the Web)"]
trusted_location["信頼できる場所"]
trusted_site_zone["信頼済みサイト/ローカル イントラネット ゾーン"]
trusted_publisher_store["信頼された発行元ストア"]
code_signing_cert["コード署名証明書"]
server_side_office_automation["サーバーサイドのOffice自動化"]
open_xml_format["Open XML形式"]
unattended_report_generation["無人帳票生成"]
bitness_match_requirement["bitness一致要件"]
vba_64bit_migration["VBAの64bit対応(PtrSafe/LongPtr)"]
com["COM(コンポーネントオブジェクトモデル)"]
activex["ActiveX"]
ocx["OCX"]
cross_platform_office_extension["クロスプラットフォームのOffice拡張"]
office_addins["Office Add-ins"]
m365_cloud_workflow["M365上のクラウドワークフロー"]
office_scripts["Officeスクリプト(Office Scripts)"]
power_automate["Power Automate"]
vbscript_regexp_dependency["VBScript.RegExp/外部.vbs依存"]
vbscript_deprecation["VBScriptの段階的廃止"]
dotnet[".NET(Core以降)"]
vba -->|"両立しない"| excel_for_the_web
macro_block_policy -.->|"防止する"| vba
zone_identifier -->|"原因になり得る"| macro_block_policy
vba -->|"で構成できる"| trusted_location
vba -->|"で構成できる"| trusted_site_zone
vba -->|"で構成できる"| trusted_publisher_store
trusted_publisher_store -->|"前提とする"| code_signing_cert
vba -->|"用いるのは非推奨"| server_side_office_automation
open_xml_format -->|"推奨される対応"| unattended_report_generation
server_side_office_automation -->|"用いるのは非推奨"| unattended_report_generation
vba -.->|"前提とする"| bitness_match_requirement
vba -.->|"前提とする"| vba_64bit_migration
vba -.->|"利用する"| com
vba -.->|"利用する"| activex
vba -.->|"利用する"| ocx
vba -->|"両立しない"| cross_platform_office_extension
office_addins -->|"推奨される対応"| cross_platform_office_extension
vba -->|"用いるのは非推奨"| m365_cloud_workflow
office_scripts -->|"推奨される対応"| m365_cloud_workflow
power_automate -.->|"利用する"| office_scripts
vba -.->|"前提とする"| vbscript_regexp_dependency
vbscript_regexp_dependency -.->|"両立しない"| vbscript_deprecation
dotnet -->|"推奨される対応"| vba
概念間の関係(全23件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- VBA(Visual Basic for Applications)はExcel for the webと両立しません。
- インターネット由来マクロの既定ブロックはVBA(Visual Basic for Applications)を防ぎます。
- Zone.Identifier(Mark of the Web)はインターネット由来マクロの既定ブロックの原因になることがあります。
- VBA(Visual Basic for Applications)は信頼できる場所で構成できます。
- VBA(Visual Basic for Applications)は信頼済みサイト/ローカル イントラネット ゾーンで構成できます。
- VBA(Visual Basic for Applications)は信頼された発行元ストアで構成できます。
- 信頼された発行元ストアはコード署名証明書を前提とします。
- VBA(Visual Basic for Applications)をサーバーサイドのOffice自動化に用いることは推奨されません。
- Open XML形式は無人帳票生成に対する本記事の推奨です。
- サーバーサイドのOffice自動化を無人帳票生成に用いることは推奨されません。
- VBA(Visual Basic for Applications)はbitness一致要件を前提とします。
- VBA(Visual Basic for Applications)はVBAの64bit対応(PtrSafe/LongPtr)を前提とします。
- VBA(Visual Basic for Applications)はCOM(コンポーネントオブジェクトモデル)を利用します。
- VBA(Visual Basic for Applications)はActiveXを利用します。
- VBA(Visual Basic for Applications)はOCXを利用します。
- VBA(Visual Basic for Applications)はクロスプラットフォームのOffice拡張と両立しません。
- Office Add-insはクロスプラットフォームのOffice拡張に対する本記事の推奨です。
- VBA(Visual Basic for Applications)をM365上のクラウドワークフローに用いることは推奨されません。
- Officeスクリプト(Office Scripts)はM365上のクラウドワークフローに対する本記事の推奨です。
- Power AutomateはOfficeスクリプト(Office Scripts)を利用します。
- VBA(Visual Basic for Applications)はVBScript.RegExp/外部.vbs依存を前提とします。
- VBScript.RegExp/外部.vbs依存はVBScriptの段階的廃止と両立しません。
- .NET(Core以降)はVBA(Visual Basic for Applications)に対する本記事の推奨です。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。