
ユーザーが切望していたことの一つは、コード(マクロまたはスクリプト)をサポートするWebアプリでした。長い間待たされましたが、Microsoft Web用Excelでは、Office Scriptsを使って一部のタスクを自動化できるようになりました。デスクトップ版Excelと同じように操作を記録し、Web用Excelがキー入力をTypeScript言語のスクリプトに変換します。スクリプトは編集したり、他のユーザーと共有したりすることも可能です。記録された操作以上の機能を使いたい場合は、Java Scriptのスーパーセットであるこの言語を習得する必要があります。この記事では、Web用Excelを起動し、Web用Excelの他のブックで使用できる簡単なスクリプトを作成します。
参照: ソフトウェアインストールポリシー (TechRepublic)
Windows 10 64ビット版システムでMicrosoft 365 Excel for the Webを使用しています。ファイルはOneDrive for Businessに保存しており、Office 365 Business Premiumのライセンスを所有しています。デモファイルは不要ですので、用意しておりません。いつものように、この機能はまずOffice Insider会員の方にご利用いただき、段階的に全ユーザーに展開されます。まだご利用いただいていない方も、まもなくご利用いただけるようになります。
Web 用 Excel でスクリプトを実行できるのは誰ですか?
お使いのMicrosoft 365のバージョンに特定の機能があるかどうかを調べるのは、まるでハロウィーンの迷路のようです。多くの新機能は、すべてのバージョンで利用できるわけではありません。Web版には、他のバージョンでは利用できない興味深い機能が追加されていることに気づきました。さらに、多くの機能はすべてのライセンスで利用できるわけではありません。Office Scriptsを実行するには、以下の要件を満たす必要があります。
- ウェブ用 Excel
- OneDrive for Business
- 次のいずれかの Microsoft 365 ライセンス:
- Office 365 ビジネス
- Office 365 ビジネス プレミアム
- Office 365 ProPlus
- デバイス向け Office 365 ProPlus
- Office 365 エンタープライズ E3
- Office 365 エンタープライズ E5
- オフィス365 A3
- オフィス365 A5
大規模な組織に所属していて、Web 版 Excel に「自動化」タブが表示されない場合は、Microsoft 365 管理者にお問い合わせください。個人で使用していてタブが表示されない場合は、サードパーティの Cookie を有効にする必要がある可能性があります。
Web 版 Excel の TypeScript について
話を進める前に、TypeScript言語とは何か疑問に思われるかもしれません。技術的には、JavaScriptのスーパーセットであるプログラミング言語です。クロスプラットフォームのオブジェクト指向スクリプト言語であり、公式のWeb言語とも言えるでしょう。今回の説明では、JavaScriptについて詳しく知る必要はありませんが、JavaScriptに精通していればTypeScriptも馴染みがあるでしょう。ただし、Office Scriptsを使用するのにJavaScriptの知識は必要ありません。
Web版Excelユーザーであれば、同じタスクを頻繁に繰り返す際にOffice Scriptsを活用することができます。例えば、1日に1回、外部データをインポートし、Excelが正しく解釈できるように少し時間をかけて修正するといった作業です。毎日、全く同じ手順を繰り返していることになります。Office Scriptsを使えば、これらの手順を記録し、Web版Excelで再利用可能なスクリプトを作成できます。作業が軽減されるだけでなく、スクリプトによって各手順の実行速度も大幅に向上します。さらに、Excelファイルにアクセスできるユーザーなら誰でもスクリプトを実行できます。
Web 用 Excel でスクリプトを作成する方法
ここまでで、Office ScriptsとTypeScriptの概要はご理解いただけたかと思います。それでは、Excel for the Webでスクリプトを作成してみましょう。嬉しいことに、ほとんどの作業はアプリが自動で行ってくれます。簡単に言うと、操作をスクリプトとして記録し、必要に応じてそのスクリプトを実行するだけです。
まず、Web版Excelで空白のブックを開きます。例えば、複数のシートに同じシンプルな表を作成するとします。これを1日に何度も行うと、作業が面倒に感じられるかもしれません。
Web 用 Excel を起動するときは、空白のブックを開いて、次の操作を行います。
- [自動化]タブをクリックします。
- 「スクリプトツール」グループの「アクションの記録」をクリックします。「アクションの記録」ペインが開きます。
- いくつかの列と行を選択します。特に問題はありませんが、私は C2:F7 を選択しました。
- [挿入]タブをクリックし、[表]グループの[表]をクリックします。
- 「テーブルにヘッダーを付ける」オプションをクリックし、「OK」をクリックします。
- [記録アクション] ペインで [停止] をクリックします (図 A )。
図A

- 次のペインで、新しいスクリプトの名前「CreateTable」 (図 B ) を入力します。
図B

最初のスクリプトを作成しました。おめでとうございます!
次に、「アクションの記録」ウィンドウとワークブックを閉じます(ワークブックのタブをクリックするだけで閉じます)。スクリプトを実行できるように、別の新しいワークブックを開きます。
新しいスクリプトを実行するには、「自動化」タブをクリックします。「Office スクリプト」グループの「すべてのスクリプト」をクリックすると、図 Cに示すように、コードエディターウィンドウに既存のスクリプトの一覧が表示されます。
図C

右側の 3 つのドットをクリックし、図 Dに示すサブメニューから [実行] を選択します。
図D
![選択したスクリプトを実行するには、[実行] を選択します。](https://image.orsate.com/dmahlefi/f1/c4/ExcelOfficeScript_D.webp)
図 Eに示すように、CreateTable スクリプトを実行すると、数回クリックするだけで同じ範囲に同じテーブルを作成できます。
図E

このような単純な例では、テーブルの作成はスクリプトの実行とほぼ同じくらい速いですが、必ずしもそうとは限りません。さらに、シートにスクリプトボタンを追加して、さらに迅速にアクセスすることもできますが、これは同じワークブックでのみ機能します。
実際のスクリプトを表示するには、3つの点ボタンをクリックして「編集」を選択します。すると、図Fに一部示されている編集ウィンドウが開きます。
図F

画面サイズによっては、このウィンドウを表示するにはリボンをしばらく閉じる必要がある場合があります。完全なスクリプトは次のとおりです。
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Add a new table at range C2:F7 on selectedSheet
let newTable = workbook.addTable(selectedSheet.getRange("C2:F7"), true);
}
スクリプトは分かりやすいですが、理解できなくても心配しないでください。理解する必要はありません。レコーダー以上のものを使いこなせるようになったら、TypeScriptを学習しましょう。オンラインで無料のドキュメントが多数公開されています。
ワークブックを編集できるユーザーであれば、添付されたスクリプトを実行できます。ただし、すべてのユーザーに編集権限が付与されるわけではありません。スクリプトを共有して誰でも実行できるようにするには、3つの点ボタンをクリックして「共有」を選択してください。
このシンプルなハウツーは良い出発点ですが、Office Scripts は全く新しい可能性の世界を提供します。どこまで進むかは、あなたとあなたのニーズ次第です。