「Excelの自動化といえばVBA(マクロ)」という時代が長かったですが、テレワークやWeb版Excelの普及により、マイクロソフトは新しい自動化ツール「Office スクリプト(Office Scripts)」を推奨し始めています。
- VBAと何が違うの?
- 今あるマクロを全部置き換えられるの?
そんな疑問をお持ちの方へ。
結論から言うと、Officeスクリプトは「VBAの完全な代わり」ではありません。
得意な領域が全く異なるため、「できること」と「できないこと」を正しく理解して使い分ける必要があります。
今回は、Officeスクリプトの機能的な限界と可能性について、現場目線で分かりやすく解説します。
Office スクリプトで「できること」
Officeスクリプトの最大の特徴は、「クラウド(Web)上で動く」という点です。
これにより、これまでのVBAでは不可能だった新しい自動化が可能になります。
1. Web版 Excel やスマホ・タブレットでの実行
VBAはデスクトップ版Excel(Windows/Mac)でしか動きませんが、OfficeスクリプトはWebブラウザ版のExcelや、Teams内のExcel、さらにはiPadなどのタブレットからでも実行できます。
「出先からスマホでボタンを押して、日報の集計処理を回す」といったことが可能です。

2. Power Automate と連携した「全自動化」
これが最強のメリットです。
Officeスクリプトは、RPAツールである「Power Automate」の部品として組み込むことができます。
- スケジュール実行: 「毎朝9時にスクリプトを勝手に動かす」(PCの電源が切れていてもOK!)
- トリガー実行: 「Formsでアンケート回答があったら、その内容をExcelに転記してスクリプトで整形する」
VBAは「ファイルを開いてボタンを押す」必要がありましたが、Officeスクリプトなら「人間がExcelを開かなくても」処理を実行できます。

3. SharePoint / OneDrive 上のファイル操作
ファイルがクラウド(SharePointやOneDrive for Business)に保存されていれば、複数の人が同時にアクセスしている状態でも、スクリプトを実行してデータを書き込むことができます。

Office スクリプトで「できないこと」

一方で、VBAでは当たり前にできていたことが、Officeスクリプトでは「仕様上できない」ケースも多々あります。ここが移行の壁になります。
1. パソコン内の「ローカルファイル」の操作
Officeスクリプトはインターネット(クラウド)上で動く技術です。
そのため、あなたのパソコンのデスクトップやCドライブにあるファイルを直接操作したり、フォルダを作成したりすることはできません。
「デスクトップにある請求書PDFを順番に開いて…」という処理は不可能です。
2. ユーザーフォーム(入力画面)の作成
VBAでよくある「ボタンを押すとポップアップ画面が出て、入力欄や選択肢が表示される」という機能(UserForm)は作れません。
もし入力画面が必要な場合は、「Microsoft Forms」や「Power Apps」を別途組み合わせる必要があります。
3. Excel「以外」の操作(メール送信など単体では不可)
VBAではOutlookを操作してメールを送ったり、Wordを印刷したりできましたが、Officeスクリプト単体では「Excelの中身をいじること」しかできません。
※ただし、メール送信などは「Power Automate」にバトンタッチすることで実現可能です。
4. 複雑なイベント処理(セルのダブルクリックなど)
VBAには「セルを選択した瞬間に動く」「ダブルクリックしたら動く」といったイベント機能がありましたが、Officeスクリプトは基本的に「実行ボタンを押した時(またはフローから呼ばれた時)」に一本道で動くだけです。細かいユーザー操作に反応するツールは作れません。
【まとめ】VBAとどう使い分ける?
上記を踏まえると、以下のような基準で選定するのが正解です。
| 項目 | Office スクリプトがおすすめ | VBA (マクロ) がおすすめ |
| 作業場所 | Webブラウザ、Teams、モバイル | デスクトップPC(Windows) |
| トリガー | 時間指定、メール受信時など (Power Automate連携) | ファイルを開いた時、ボタンクリック時 |
| 対象データ | クラウド上のExcelファイル | PC内のファイル、フォルダ操作 |
| ユーザー操作 | 入力画面などは不要 (裏側で処理) | 複雑な入力フォームが必要 |
「個人のPCで完結する複雑な事務作業」はVBAのまま残し、「チームで共有するデータや、定型的な自動処理」はOfficeスクリプトへ移行する、という「ハイブリッド運用」が最も現実的です。
日々のトラブル、まずこの一冊で解決しませんか?
- Officeスクリプトを書こうとしたらエラーが出た
- Power Automateとの連携がうまくいかない
新しい技術への挑戦には、予期せぬトラブルがつきものです。
もし、あなたがそんな日々の問い合わせ対応に追われ、本来の業務に集中できずにいるなら、まずこの一冊を手元に置いてみてはいかがでしょうか。
Microsoft 365支援のプロが、現場で実際に寄せられるよくある質問と解決策を厳選してまとめた「トラブルシューティング大全」をご用意しました。
▼資料ダウンロードはこちら
『社内からの「これどうやるの?」を9割削減する Microsoft 365 トラブルシューティング大全』

よくある質問(FAQ)
- QVBAのコードをコピペしてOfficeスクリプトに使えますか?
- A
VBA(Visual Basic)とOfficeスクリプト(TypeScript)は、使われているプログラミング言語が全くの別物です。
自動変換ツールも完全ではないため、基本的には書き直しが必要です。
- Q処理速度はどちらが速いですか?
- A
大量のデータ処理はVBAの方が速い傾向にあります。
Officeスクリプトはクラウドと通信しながら動くため、数万行のデータを1行ずつループ処理するような書き方をすると、VBAよりも遅くなることが多いです。
書き方の工夫が必要です。
- Qセキュリティは安全ですか?
- A
VBAはウイルス混入のリスクから敬遠されがちですが、Officeスクリプトは管理者が「誰が実行できるか」を制御しやすく、マクロのような「セキュリティ警告」に怯えることなく運用できます。
結論

Officeスクリプトで「できること」は、「場所を選ばない自動化」です。 Officeスクリプトで「できないこと」は、「PCローカルの細かい操作」です。
無理に全てをOfficeスクリプトにする必要はありません。
まずは「毎朝の手作業」など、Power Automateと相性の良い業務から置き換えてみてはいかがでしょうか。
他社の成功事例から、活用のヒントを得ませんか?
今回はOfficeスクリプトの機能をご紹介しましたが、Microsoft 365には、他にもTeamsやSharePointを活用した、業務効率化のテクニックが数多く存在します。
「他の会社は、Microsoft 365をどのように活用して、成果を出しているのだろう?」 そんな疑問をお持ちでしたら、ぜひ弊社の「Microsoft 365 導入事例集」をご覧ください。
様々な業種・規模の企業様が、どのように課題を解決したか、具体的な事例を多数ご紹介しています。
▼[Microsoft 365 導入事例集をダウンロードする]


Microsoft 365に関するご相談やお悩みがございましたら、ぜひ株式会社WITHWITまでお気軽にお問い合わせください。
数あるクラウドサービスの中でMicrosoft 365 に特化してきたからこそ導入前から導入後の定着に至るまで、幅広いご相談に対応いたします。
