【vs VBA】ふと気づいたら Excel に Office Script ?!なるものが!
アフィリエイト広告を利用しています。


いつもありがとうございます!
今日、ふと気づいたのですが、Microsoft 365 の Excelに「Office Script」なるものがある!なんじゃそりゃ!
「知ってるよ!」という方!大変申し訳ございません!
こちらの記事に全体像が解説されており、大変勉強になりました。ありがとうございます!
VBA愛好家としては、何ができるのか調べずにはいられません。そこで、VBAでできることがOffice Scriptでも可能なのか、ざっと調べてみました。
VBAで出来る基本的な操作 | Office Script でできる? | 補足 |
---|---|---|
セルの値を取得・設定 | できる | getValue() , setValue() を使用 |
セルの書式設定(フォント、色など) | 部分的にできる | 一部の書式設定(太字、色など)はできるがVBAより制限あり |
範囲選択(Range.Select ) | できない | Office Scriptには Select メソッドがなく、セル範囲を直接指定して操作する |
行・列の挿入・削除 | できる | insertRows() , deleteRows() で対応可能 |
シートの追加・削除・名称変更 | できる | addWorksheet() , deleteWorksheet() , renameWorksheet() が使用可能 |
テーブルの作成・編集 | できる | createTable() , addTableColumn() などで操作可能 |
グラフの作成・編集 | できない | 現時点ではOffice Scriptでグラフ作成はできない |
条件付き書式の適用 | できる | applyConditionalFormat() を使用 |
フィルターの適用・解除 | できる | applyFilter() , removeFilter() で操作可能 |
ソートの実行 | できる | sort() メソッドを使用 |
メッセージボックスの表示 | できない | Office Scriptには MsgBox のような機能なし |
ユーザーフォームの使用 | できない | フォームやUI要素の作成はできない |
外部データの取得(CSV、SQLなど) | できない | 現時点では外部データの直接取得はできない |
ループ処理(For , While ) | できる | JavaScriptの構文でループ処理を記述可能 |
イベント駆動(ワークシート変更時の処理など) | できない | イベントトリガー機能は未対応 |
ファイルの保存・開く | できない | スクリプトから直接ファイルを開く・保存はできない |
複数ファイルのイテレーション | 単体ではできない | Power Automateを併用すれば、OneDriveやSharePoint上の複数ファイルに対して実行可能 |
マクロの実行(他のマクロを呼び出す) | できない | 他のスクリプトを呼び出す機能はなし |
やはり高度な操作はVBAに及ばない印象です。このあたり、Google Apps Script(GAS)と似たような立ち位置のような気がします。
Office Scriptも非常に素晴らしい機能ではありますが、現時点ではVBAに比べてできることが限られているため、まだ学習の優先度は上げなくても良いのかなと感じました。

ご覧いただきありがとうございました!