次の方法で共有


Office スクリプトと VBA マクロの違い

Office スクリプトと VBA マクロには多くの共通点があります。 どちらも、ユーザーが使いやすいアクション レコーダーを使用してソリューションを自動化し、それらの記録の編集を許可します。 どちらのフレームワークも、プログラマと見なさないユーザーが Excel で小さなプログラムを作成できるように設計されています。

基本的な違いは、VBA マクロはデスクトップ ソリューション用に開発され、Office スクリプトはセキュリティで保護されたクロスプラットフォームのクラウドベースのソリューション用に設計されていることです。

さまざまな Office 機能拡張ソリューションのフォーカス領域を示す 4 象限図。Office スクリプトと VBA マクロはどちらも、エンド ユーザーがソリューションを作成できるように設計されています。Office スクリプトはクロスプラットフォーム エクスペリエンスとコラボレーション用に構築されていますが、VBA はデスクトップ用です。

この記事では、VBA マクロ (一般的な VBA) と Office スクリプトのメインの違いについて説明します。 Office スクリプトは Excel でのみ使用できるため、ここで説明する唯一のホストです。

プラットフォームとエコシステム

次の表は、どのプラットフォームと製品でサポートされている機能を示しています。

Excel on the web Windows 用 Excel Excel for Mac Excel for iOS その他の Office 製品 Power Automate
Office スクリプト はい はい はい いいえ いいえ はい
Office スクリプト アクション レコーダー はい はい はい いいえ いいえ いいえ
VBA マクロ いいえ はい はい いいえ はい いいえ
Office 用アプリの作成 はい はい はい はい はい いいえ
COM アドイン いいえ はい はい いいえ はい いいえ

VBA は、デスクトップ中心に設計されています。 VBA は、ユーザーのデスクトップと対話して、COM や OLE などの同様のテクノロジに接続できます。 ただし、VBA にはインターネットに呼び出す便利な方法はありません。 Office スクリプトでは、JavaScript 用のユニバーサル ランタイムが使用されます。 これにより、スクリプトの実行に使用されているマシンに関係なく、一貫した動作とアクセシビリティが提供されます。 また、 制限された一連の Web サービスを呼び出すこともできます。

ユーザーが Office スクリプトを使用または作成するには、エンタープライズライセンスまたは教育機関向けライセンスが必要です。 サポートされているライセンスの完全な一覧については、「 プラットフォームのサポート」を参照してください。 VBA は Excel のデスクトップ バージョンに組み込まれており、特別なライセンスは必要ありません。

セキュリティ

VBA マクロのセキュリティクリアランスは Excel と同じです。 これにより、デスクトップへのフル アクセスが提供されます。 Office スクリプトは、ブックをホストしているマシンではなく、ブックにのみアクセスできます。 さらに、JavaScript 認証トークンをスクリプトと共有することはできません。 つまり、スクリプトにはサインインしているユーザーのトークンも、外部サービスにサインインするための API 機能もないため、既存のトークンを使用してユーザーの代わりに外部呼び出しを行うことができません。

管理者には、VBA マクロの 3 つのオプションがあります。テナント上のすべてのマクロを許可するか、テナントでマクロを許可しないか、署名された証明書を持つマクロのみを許可します。 この細分性の欠如により、1 つの不適切なアクターを分離するのが困難になります。 現在、Office スクリプトは、テナント全体、テナント全体、またはテナント内のユーザーのグループに対してオフにすることができます。 管理者は、他のユーザーとスクリプトを共有できるユーザーと、Power Automate でスクリプトを使用できるユーザーを制御することもできます。

割合

現時点では、VBA では、特にデスクトップ クライアントで使用できる Excel 機能のより完全なカバレッジが提供されています。 Office スクリプトでは、Excel on the webのほぼすべてのシナリオについて説明します。 さらに、Web で新機能が登場すると、Office スクリプトはアクション レコーダーと JavaScript API の両方でサポートされます。

Office スクリプトでは、Excel レベルの イベントはサポートされていません。 スクリプトは、ユーザーが手動で起動したとき、または Power Automate フローがスクリプトを呼び出すときにのみ実行されます。

Power Automate

VBA には Power Automate コネクタがありません。 サポートされているすべての VBA シナリオには、マクロの実行に参加するユーザーが含まれます。

Office スクリプトは、Power Automate を使用して実行できます。 ブックは、スケジュールされたフローまたはイベント ドリブン フローを通じて更新できるため、Excel を開くことなくワークフローを自動化できます。 チュートリアルを試す : Power Automate フローからスプレッドシートを更新して、Power Automate の学習を開始してください。 また、自動化されたタスクアラームのサンプルをチェックして、実際のシナリオで Power Automate を介して Teams に接続されている Office スクリプトを確認することもできます。

関連項目