※ 本記事で紹介している機能はプレビュー版に基づいており、今後のアップデートによって仕様等が変更される可能性があります。
先日、平野さん( @ai_yamasaki )のツイートでデスクトップ版のExcel(Windows、Mac)でOffice スクリプトの記録ができるようになったことを知り、自分の環境(Microsoft Excel for Microsoft 365 MSO (バージョン 2302 ビルド 16.0.16107.20000) 64 ビット)でも確認したところ、たしかに自動化タブのスクリプト ツールグループに「操作を記録」ボタンが追加され、Office スクリプトとして操作が記録できるようになっていました(2023年1月時点ではプレビュー)。
デスクトップ版のWindows でも Office Script のレコード機能が使えるようになる。
確認してみたら、すでにプレビューが利用できるようになってた。Excel: Record spreadsheet actions using Office Scriptshttps://t.co/afYPSfsXLf pic.twitter.com/2ht4186562
— HIRANO Ai | MVP 👉 ❤️ SharePoint (@ai_yamasaki) January 11, 2023
Web版のExcelではすでに操作をOffice スクリプトとして記録できるようになっていますが(必要条件についてはサポートサイトご参照)、今回の機能追加でデスクトップ版のExcelでもそれができるようになったわけですね!
ロードマップを見る限りでは、GAは今年3月になるようです。
https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=109565 より
Office スクリプトの記録
自動化タブから「操作を記録」ボタン(コントロールID:RecordActions)をクリックすると、作業ウィンドウに「操作を記録」画面が表示され、自動的に操作の記録が開始されます。
文字入力や装飾等の操作を行うと処理がOffice スクリプトとして記録され、「コードとしてコピー」ボタンをクリックすると、下記のようなコードがクリップボードにコピーされます。
let selectedSheet = workbook.getActiveWorksheet(); // Set range A1:A2 on selectedSheet selectedSheet.getRange("A1:A2").setValues([["123"],["456"]]); // Set font bold to true for range A1 on selectedSheet selectedSheet.getRange("A1").getFormat().getFont().setBold(true); // Set font italic to true for range A2 on selectedSheet selectedSheet.getRange("A2").getFormat().getFont().setItalic(true);
記録を停止するときは「停止」ボタンをクリックします。
記録されたスクリプトは自動的にOneDriveに保存されます。
このあたりの動作はWeb版と同じですね!
2023/2/7 追記:
自分の環境(Microsoft Excel for Microsoft 365 MSO (バージョン 2302 ビルド 16.0.16130.20010) 64 ビット)では「操作を記録」ボタンの「(プレビュー)」表記が無くなっていることに気が付きました。
ロードマップを見ると最終更新日が2月1日になっているので、そのタイミングで更新されたのかもしれません。
消えたマクロの記録ボタン!?
今回のアップデートに関係があるのかどうか分かりませんが、ステータスバーにあった「マクロの記録」ボタンが無くなっていることに気が付きました。
下図の通り、Excel for Microsoft 365 MSO (バージョン 2212 ビルド 16.0.15928.20196) 64 ビット環境では確認できています。
この違いがバージョンによるものか環境によるものかは不明ですが、ちょっと気になったので記事にも載せてみました。
この記事へのコメントはありません。