Office ScriptsでExcelグラフ作成!初心者でも自動化できる簡単な書き方
生徒
「毎日Excelで同じようなグラフを手作業で作るのが大変なんです…。Office Scripts(オフィススクリプト)を使えば、グラフの作成もボタン一つで自動化できますか?」
先生
「もちろんです!Office Scriptsを使えば、表のデータを読み取って、棒グラフや円グラフを一瞬で作成し、色やタイトルの編集まで自動で行うことができますよ。」
生徒
「プログラミングは全くの未経験なんですが、グラフを作るためのコードは難しいでしょうか?」
先生
「大丈夫ですよ。まずはデータの範囲を決めて、グラフの種類を選ぶという基本のステップから始めれば、初心者の方でもすぐに覚えられます。一緒に書き方を見ていきましょう!」
1. Office Scriptsとは?
Office Scripts(オフィススクリプト)は、Microsoft ExcelのWeb版やデスクトップ版で利用できる最新の自動化ツールです。これまでExcelの自動化といえば「VBA(マクロ)」が主流でしたが、Office Scriptsはクラウド環境に最適化されており、より現代的で高速な処理が可能です。
このツールでは「TypeScript(タイプスクリプト)」というプログラミング言語を使用します。聞き慣れない言葉かもしれませんが、基本的には「Excelに対して、どのセルのデータを使って、どんな操作をするか」を文章で指示するようなものだと考えてください。プログラムが初めての人でも、Excelの「自動化」タブにあるエディターを使えば、誰でも今日からプログラムを書くことができます。
2. グラフ作成の基本「3つのステップ」
Office Scriptsでグラフを作成するには、料理のレシピと同じように、決まった順番があります。複雑に考える必要はありません。基本的には以下の3つの手順をコードで書くだけです。
- データの場所を教える: グラフにしたい数字が入っているセル(範囲)を指定します。
- グラフの形を決める: 棒グラフにするのか、折れ線グラフにするのかを選びます。
- グラフを配置する: シートのどこにグラフを表示させるかを指示します。
この流れさえ理解していれば、どんな複雑なグラフでも基礎は同じです。まずは、もっともシンプルな「棒グラフ」を作るコードから体験してみましょう。
3. まずはここから!シンプルな棒グラフの作成
まずは、Excelのシートにある「A1からB5」までの範囲にあるデータを使って、標準的な棒グラフを作成するコードを書いてみましょう。このコードは「ここからここまでをグラフにしてね」という一番シンプルな命令です。
function main(workbook: ExcelScript.Workbook) {
// 1. 操作するシートを取得します
const sheet = workbook.getActiveWorksheet();
// 2. グラフの元になるデータの範囲(A1からB5)を指定します
const dataRange = sheet.getRange("A1:B5");
// 3. グラフを追加します(種類は「ColumnClustered」=集合縦棒グラフ)
const chart = sheet.addChart(ExcelScript.ChartType.columnClustered, dataRange);
}
このプログラムを実行すると、現在開いているシートの指定範囲を元に、自動でグラフが生成されます。columnClusteredというのは「縦棒グラフ」という意味の専門用語です。
4. プログラムに出てくる用語の解説
プログラミング未経験の方にとって、コードの中にある英語の意味が分からず不安になることがあるかもしれません。ここで、よく使う用語を分かりやすく「例え話」で解説します。
- workbook(ワークブック): 今開いているExcelファイル全体のことです。
- worksheet(ワークシート): ファイルの中にある1枚ずつの「シート」のことです。
- getRange(ゲット・レンジ): セルの範囲を指定する命令です。例えば「A1からC10までを取ってきて!」とお願いする時に使います。
- addChart(アド・チャート): 新しくグラフを追加する、という魔法の言葉です。
- const(コンスト): これは「これから名前を付けますよ」という合図です。例えば「長い住所を『あそこ』と呼ぶことにする」というような、情報のラベル付けです。
これらの用語をパズルのように組み合わせることで、Excelに指示を出していくのがOffice Scriptsの仕組みです。
5. グラフの種類を変更してみよう(折れ線・円グラフ)
先ほどは棒グラフを作りましたが、データの種類によっては「折れ線グラフ」や「円グラフ」にしたいこともありますよね。Office Scriptsでは、一行書き換えるだけでグラフの種類を自由に変えられます。次は、データの推移を見るのに適した「折れ線グラフ」を作ってみましょう。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const dataRange = sheet.getRange("A1:B10");
// グラフの種類を「line」に変えるだけで折れ線グラフになります
const chart = sheet.addChart(ExcelScript.ChartType.line, dataRange);
}
実行結果は以下のようになります。
(実行結果:指定した範囲のデータに基づき、シート上に折れ線グラフが表示されます)
もし円グラフにしたい場合は、ExcelScript.ChartType.pieと書くだけでOKです。覚えきれないほどたくさんの種類がありますが、まずはこの3つ(棒・折れ線・円)を覚えておけば仕事では十分活用できます。
6. グラフのタイトルを自動で編集する
グラフが作成されただけでは、何のデータなのか分かりにくいですよね。手作業でタイトルを入力するのは面倒なので、これもプログラムで自動化しましょう。グラフの名前(タイトル)を「2025年度 売上報告」に変更する書き方を解説します。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const dataRange = sheet.getRange("A1:B5");
const chart = sheet.addChart(ExcelScript.ChartType.columnClustered, dataRange);
// グラフのタイトルを設定します
chart.getTitle().setText("2025年度 売上報告");
// タイトルを常に表示するように設定します
chart.getTitle().setVisible(true);
}
setText(セット・テキスト)という命令を使うことで、好きな文字をグラフの頭に乗せることができます。これを使えば、月ごとに変わるタイトルなども自動で反映できるようになり、修正忘れも防げます。
7. グラフの見た目(スタイル)を整える方法
デフォルトのままだと、少し味気ないデザインのグラフになってしまうことがあります。Office Scriptsでは、色味や配置を細かく設定することも可能です。例えば、グラフの色をあらかじめ用意されたテンプレート(スタイル)から選ぶ方法があります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const chart = sheet.getCharts()[0]; // シート内の1番目のグラフを選択
// グラフの見た目(スタイル)を「201」という番号のデザインに変更します
chart.setStyle(201);
// グラフの大きさを変更(幅 400ピクセル、高さ 300ピクセル)
chart.setWidth(400);
chart.setHeight(300);
}
このように、一度作成したグラフに対しても、後から「大きさ」や「見た目」を調整する命令を送ることができます。getCharts()[0]というのは、少し難しい書き方ですが、「今あるグラフの中から、1番最初に見つかったものを選んでね」という意味です。
8. 応用編:特定のシートにグラフを作成する
今までは「現在開いているシート(ActiveWorksheet)」を使ってきましたが、実際の仕事では「データが入っているシート」と「グラフを表示したいシート」を分けたい場合もありますよね。そんな時に便利な、シートの名前を指定して操作する方法を紹介します。
function main(workbook: ExcelScript.Workbook) {
// 「売上データ」という名前のシートを探します
const dataSheet = workbook.getWorksheet("売上データ");
// データの範囲を指定
const range = dataSheet.getRange("A1:C12");
// グラフを「分析レポート」という別のシートに追加します
const reportSheet = workbook.getWorksheet("分析レポート");
const chart = reportSheet.addChart(ExcelScript.ChartType.columnStacked, range);
chart.getTitle().setText("月別売上推移");
}
このコードを使えば、データが散らばっていても自動で集約して、見やすいレポート用シートにグラフを貼り付けることができます。これこそが自動化の醍醐味ですね。プログラム未経験の方でも、シート名を変えるだけで自分のExcelファイルにすぐ応用できるはずです。
9. エラーが出たときの対処法
コードを書いていて、赤い波線が出たり、実行ボタンを押しても動かなかったりすることがあります。これは「エラー」と呼ばれるもので、プログラムからの「指示がよく分からないよ」という返事です。初心者がつまずきやすいポイントを確認しましょう。
- スペルミス:
getRangeをgetrange(小文字)にしていたり、Workbookの綴りが間違っていたりしませんか? プログラムは大文字と小文字を厳密に区別します。 - カッコの閉じ忘れ:
( )や{ }は必ずペアで使います。片方だけ忘れると、コンピュータはパニックになってしまいます。 - 範囲が正しくない: 指定したセル(例えば
A1:B5)に本当にデータが入っていますか? 空っぽの場所を指定すると、中身のないグラフができてしまいます。
エラーが出ても、落ち着いてコードを読み返してみましょう。一つずつ直していけば、必ず動くようになります。最初はエラーが出るのが当たり前です。失敗を繰り返しながら、Excel自動化のスキルを磨いていきましょう!