見出し画像

【Excelのタイパな話】初心者がExcelでVBAの代わりにOffice Scriptを使ってほしい理由 Day.15

★★SHIFT公式ブログでアドベントカレンダー★★
SHIFT公式ブロガーによるブログ版アドベントカレンダーで、SHIFTらしい多彩な最新記事をクリスマスまでの25日間に毎日お届けします!
SHIFT公式アドカレ2023まとめ記事 
SHIFT公式アドカレ2022はじめます
SHIFTGroup技術ブログTOP 

昨日の記事は、
アジャイルコーチが出会ったアンチパターン集 11選
でした。いかがでしたか?さて本日はこちら!

この記事を読んでほしい読者はこんな方です


  • 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を作って生活してみた結果』です。
お楽しみに!


執筆者プロフィール:根岸 紳
前職は年間研修実施回数15,000回超の研修会社の社内SE。
その時に培ったIT研修特にオンラインの新人IT研修の経験などから、IT教育に興味を持つようになり2020年10月から株式会社SHIFTにジョイン。
入社後は主にIT業界未経験者として採用された若手むけの研修を担当、その他に新卒研修、社外向けの研修ヒンシツ大学の講師を担当する。趣味は温泉と読書と筋トレと水泳とカラオケ。

お問合せはお気軽に

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のストック画像


この記事が参加している募集