【Excelのタイパな話】初心者がExcelでVBAの代わりにOffice Scriptを使ってほしい理由 Day.15
この記事を読んでほしい読者はこんな方です
Microsoft365のサブスクリプションに契約している(個人でも企業でも)
Excelに苦手意識やアレルギーのある方
アプリ版のExcelを使っている方
その業務、効率化できてますか?
こんにちは。私は(株)SHIFTで主に社内教育を担当している根岸です。 私は社内で主にExcelの研修にかかわらせていただいています。
私自身は業務で毎日Excelを使っています。 Excelの教育に携わることで自分のExcel知識も深まり 業務の生産性もExcelのおかげでだいぶ改善することができました。
その結果、毎日基本定時で帰れるようになり、可処分時間が増えたことでジムで汗を流したりすることができ毎日が充実しています。
そんな私からこの記事で読んでいただいている読者のみなさんにききたいのは
「その業務、効率化できていますか?」
という質問です。
もしこの質問に「全然できていない」と思った方のために、今回は誰でもExcelで業務を効率化できる方法をご紹介したいと思っています。
「できない」のではなく「アイデアがない」
私がExcel研修の講義をする前に受講生に質問すると
「Excelは資料修正にしか使っていない」
「SUM関数など限られた関数しか使っていない」
「そもそもExcelをつかったことがない」
といった意見をいただきます。しかし、実は世の中はそういった 「Excelのことを知らない方」や「Excelに苦手意識を持っている方」 に対して優しい世の中になっているんです!
だから今日からはExcelが「できない」ではなくExcelで効率化するための「アイデアがない」と考えてみましょう!
そんな初心者やExcelが苦手な方にお勧めしたい機能がこれから紹介する「自動化」です
Excelが苦手な人ほどお勧めしたいExcelの新機能「自動化」!
先日からこれまでβ版とウェブ版にしかなかった「自動化」というタブがアプリ版のExcelでも使えるようになりました。
これまでウェブ版でしか使えなかったOffice Scriptがアプリ版のExcelでも使えるようになりました。
自動化タブではOffice Scriptはもちろん、PowerAutomateとの連携で文字通り普段の面倒なタスクをスケジュール化するなど自動化することができます。
それにより、つまり「単調で面倒くさい作業を自動化できるようになった」と覚えておいてください。
これからのマクロは自動化タブから作る
Excelには長年開発タブがありそこでマクロを記録したりVBAでプログラミングしてExcelの操作を自動化することができました。
しかし詳しくは割愛しますがVBAという既存のマクロの仕組みは2008年にサポートが終了したVB6.0ベースの言語です。既存のVBAやマクロの仕組みはMicrosoftからサポートされておらず、今後より使われなくなってくることも予想されます。(「Excel On The Web開発入門」より抜粋)
それらVBAの機能はこれまで通り使えますが、サポートされていないVBAを使ったマクロの仕組みをこれまで通り使っていると
悪意のある人がVBAを使ってマルウェアが作れる
最適化されていないので処理速度が遅くなる
という問題などがあります。そこで紹介したいのが自動化タブでできるOfficeScriptなんです。
これまでの自動化より安全で高速、PowerAutomateと連携もできる。作ったスクリプトはチームで共有することも簡単!
Office Scriptを使うことで「.xlsx」ファイルでも自動化のスクリプトが実行できるようになりました。
一度作ったスクリプトは保存して別ブックの自動化タブから再利用することができます。
PowerAutomateと連携して夜間や週末など、稼働していない時間も処理を実行することができるようになりました。
さらにOffice ScriptはMicrosoftが開発したTypeScriptという技術を使っています。TypeScriptは現在Microsoftで手厚くサポートされているプログラミング言語です。
そんなPowerAutomateのサンプルを次章でご紹介します。
早速Office Scriptを使ってみよう
たとえばたくさんのシートがあるExcelブックに目次ページと各シートへのリンクがあると便利だと思います。
そんなわけで、今回は先頭に目次ページを作るOffice Scriptを紹介します。
このスクリプトを実行すると、先頭にリンク付きのシート一覧が表示されている「目次」というシートが挿入されます。
やり方は自動化タブから「新しいスクリプト」を押すとコードエディターが画面右側に表示されます。コードエディターの中に以下のスクリプトを貼り付けて実行ボタンを押してください。
上図の③でこちらのソースコードの内容に上書きしてください。
const TOC_SHEET_NAME = "目次";
function main(workbook: ExcelScript.Workbook) {
// Delete the existing "目次" sheet if it exists
let tocSheet = workbook.getWorksheet(TOC_SHEET_NAME);
if (tocSheet) {
tocSheet.delete();
}
// Create a new worksheet and name it "目次"
tocSheet = workbook.addWorksheet();
tocSheet.setName(TOC_SHEET_NAME);
tocSheet.setPosition(0);
// Add a title in cell B1
let titleRange = tocSheet.getRange("B1");
titleRange.setValue("目次");
titleRange.getFormat().getFont().setBold(true);
titleRange.getFormat().getFont().setSize(18);
// Create the table of contents headers
let tocRange = tocSheet.getRange("B2");
// Get the range for the table of contents entries
let worksheets = workbook.getWorksheets();
tocRange = tocRange.getResizedRange(worksheets.length, 0);
// Loop through all worksheets in the workbook and create hyperlinks
for (let i = 0; i < worksheets.length; i++) {
if (worksheets[i].getName() !== TOC_SHEET_NAME) {
tocRange.getCell(i, 0).setHyperlink({
textToDisplay: worksheets[i].getName(),
documentReference: `#${worksheets[i].getName()}!A1`
});
}
}
// Format the hyperlinks in blue font with underline
tocRange.getFormat().getFont().setColor("blue");
tocRange.getFormat().getFont().setUnderline(ExcelScript.RangeUnderlineStyle.single);
//目盛り線を消す
tocSheet.setShowGridlines(false);
}
このスクリプトを保存すれば次回から同じスクリプトを自動化タブから実行できるようになります。
ChatGPTを使えばOffice Scriptを自動生成してくれる
ChatGPTなど生成AIを活用することでOffice Scriptの知識がなくてもソースコードを作ることができます。
ぜひOffice Scriptを活用し業務の効率化を実現していただきたいと思います。
今回自動化の機能のひとつである「Office Script」を紹介しました。Excelが苦手ならExcelの業務を自動化してしまえばいい、自動化のスクリプトが分からないならAIに自動生成してもらえばいいというわけです。
ぜひこの記事にスキをしていただけると今後の記事作成のモチベーションになるのでよろしくお願いします。
★★SHIFT公式ブログでアドベントカレンダー★★
明日の記事は、
『2023年やりたいことリスト100を作って生活してみた結果』です。
お楽しみに!
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
SHIFTの採用情報はこちら
https://service.shiftinc.jp/resources/
RECRUIT ―あなたの新しいステージへ―
PHOTO:PowerPointのストック画像