Skip to content

MS_OfficeScript

nishi_74322014 edited this page Aug 31, 2026 · 1 revision

Office Script

概要

  • Microsoft 365 の Excel で利用できる自動化ツール

    • アクション レコーダーを使用して日常のタスクを自動化できる。
    • 記録したスクリプトはエディターを使用して編集できる。
    • Power Automate と組み合わせてワークフロー全体を合理化する。
  • 対応する言語は TypeScript らしい。

補足(VBA との位置づけの違い): Office Script は
VBA の後継ではなく、Web / クラウド側の EUC 手段である。
両者は併存しており、VBA が廃止される予定は示されていない。

VBA Office Script
言語 VB6 系 TypeScript
実行場所 デスクトップ版 Excel(クライアント) Excel on the web(クラウド)
保存先 ブックの中 OneDrive / SharePoint(ブックとは別)
他アプリ操作 可(COM オートメーション) 不可(Excel のみ)
外部連携 端末の権限で自由 Power Automate 経由が基本
実行トリガ ブックを開く・ボタン等 手動 / Power Automate

重要なのは スクリプトがブックの外に保存される点で、
ブックをコピーしてもスクリプトは付いてこない。
VBA の「ファイル 1 つで完結する」性質
(→ VBAは何故、最強EUCツールなのか?)とは
配布の考え方が根本的に異なる。

詳細

  • 便利だが、できないこと・制限がある点もあるらしい。
  • VBA ユーザからすると「え、これできないの!?」となる場面も多いらしい。

補足(VBA ユーザが躓きやすい制限): 元ページが「制限がある」とだけ述べている点を、
具体的に補っておく。

  • ユーザーフォームが作れない
    ダイアログによる入力を伴う処理は成立しない(入力はシート上で行う)。
  • MsgBox / InputBox に相当するものがない
    実行結果はコンソールへの出力か、シートへの書き込みで表現する。
  • Excel 以外の Office アプリを操作できない
    VBA が COM 経由で Word / Outlook 等を操作できたのに対し、
    Office Script は Excel のオブジェクト モデルのみを扱う。
    他サービスとの連携は Power Automate が担当する。
  • 任意の外部 API を直接叩けない
    VBA の MSXML2.XMLHTTP に相当する自由な通信はできない。
  • イベント駆動が弱い
    Worksheet_Change のようなブック内イベントで起動する仕組みはなく、
    手動実行か Power Automate のトリガから呼ぶ形になる。
  • 実行時間・スコープの上限がある
    長時間かかるバッチ的な処理には向かない。

つまり、Office Script が向くのは
**「Excel のシートに対する定型的な整形・集計を、
Power Automate のフローの一工程として実行する」**用途である。
VBA が担っていた「1 つのブックで業務アプリを作る」用途は、
Office Script ではなく Power Apps 側の領分になる。

補足(Python in Excel という選択肢): EUC の自動化手段としては、
Microsoft 365 の Excel に Python in Excel も追加されている。
セルの数式から Python を書き、pandas / matplotlib 等が利用できる。
実行はクラウド側で行われるため、
データ分析用途では Office Script より適する場合がある。

参考

本 Wiki 内


Tags: ツール類, その他、開発の色々, Visual Basic, 移行, EUC

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally