ブレーンアシストオンライン

VBAからOfficeスクリプトへ!?

はじめに

多くの企業ではまだまだ多くの業務システムをVBA(Visual Basic for Applications)で利用されているので
その過去の資産を有効利用、継続利用したいと考える企業は多い事でしょう。
ですが、VBAは2013年にバージョン7.1になった以降マイクロソフトでは大きなバージョンアップをしていません
すぐに無くなることは恐らく考えられませんが、オンプレミスからクラウドへの移行が進む中、
VBAはデスクトップ向けに設計されたツールであるため、何かとクラウド化には不向きです

そんな中、Web向けに設計されたOfficeスクリプトをマイクロソフトは推し進めているようなので
どんなものか簡単に説明していきたいと思います。

Officeスクリプトとは

Officeスクリプトは、 Onlineで利用できる自動化ツールであり、
VBAのマクロの記録と同様に、自動化の操作記録機能を導入しており、ユーザーは自分の操作を記録し、その記録をもとにコードを生成することがでます。
また、当初はExcel Onlineのみの機能でしたが、現在はデスクトップ版のExcelにも導入(2023年6月)されています。

マクロの記録(VBA)
開発 → マクロの記録

操作を記録(Officeスクリプト)
自動化 → 操作を記録

・言語
OfficeスクリプトはVBAとは異なるJavaScriptをベースにした言語(TypeScript)であるため、
Web開発の知識を持つ開発者は容易に扱うことができます。

・セキュリティ
セキュリティ面では、VBAのソースコードがアプリケーション毎に保存されるためマルウェアに利用され、これが原因で多くの企業がセキュリティ侵害に直面していました。
Officeスクリプトでは、Microsoft 365のOneDriveなどのクラウドストレージにソースコードを保存され、
実行権限を作成者のアカウント単位とし、他のユーザーへは共有することで利用する仕様としているため、
セキュリティ面では、VBAとは違い改善されています。

OneDrive上の保存先
OneDrive マイフォルダ → ドキュメント → Office Scripts

・Officeスクリプトを利用するには
ソースコードの保存先がクラウドストレージのため、Office 365ライセンスが必要条件です。
なお、Office 365のビジネスプランや教育機関向けプランにのみ含まれており、現時点では個人向けのライセンスでは利用できません。

また、クラウド環境で動作するため、デスクトップアプリケーションに依存せず、オンライン環境下であればどこからでもアクセス可能です。
これによりソースコードのメンテナンスは一元管理ができ、複数で利用する場合は共有さえしていれば即時利用できてしまい、VBAのように改修後、配布などの手間は無くなります。

さらに、OfficeスクリプトはPower Automateとの連携が可能です。
Power Automateは、さまざまなアプリケーションやサービスを自動的につなげるためのマイクロソフトの自動化プラットフォームで、
これにより、Officeスクリプトで作成した処理を他のアプリケーションやデータソースと統合し、より複雑な業務フローを効率化することが可能です。
VBAと違いExcelを開くことなく利用できるのはメリットです。
※Power Automateを利用するには別途ライセンスを購入する必要があります。

・移行
現在のところ、VBAからOfficeスクリプトへの移行ツールは提供されていないため、
既存のVBAをOfficeスクリプトに直接移行することは容易ではなく、
業務で使用されているVBAマクロを新しいスクリプト環境に移行するには、手動での再作成が必要です。
この手間が緩和される何かしらの手立てをマイクロソフトには期待したいところです。

まとめ

マイクロソフトは、段階的Officeスクリプトの機能拡充を進めているところかと思われます。
Power Automateのコネクタも増加傾向で、Microsoft 365サービスだけでなく外部サービスなどとの連携で真価は発揮するものと思われます。
ただ、現状、RPAやノーコードツールなどに人気を奪われていることもあるので
VBAからOfficeスクリプトにユーザーを導きたいのであればマイクロソフトは早々に何かしらの移行対策を進めて欲しいところです。