Office ScriptsでExcelグラフ作成を自動化!折れ線・棒・円グラフの簡単な作り方
生徒
「毎日Excelで売上データをグラフにする作業があるんですけど、Office Scriptsで自動化ってできるんでしょうか?プログラミングは全くの初心者なんです…。」
先生
「もちろんです!Office Scriptsを使えば、ボタン一つで綺麗なグラフを生成できますよ。複雑な設定も、魔法の呪文のようなコードを書くだけで完了します。」
生徒
「折れ線グラフとか棒グラフとか、種類も選べるんですか?なんだか難しそうですが、私にもできますか?」
先生
「大丈夫ですよ。まずは一番シンプルなグラフの作り方から、初心者の方にも分かりやすく丁寧に解説していきますね!」
1. Office Scriptsとは?Excel Onlineでの自動化の仕組み
Office Scripts(オフィススクリプト)は、Microsoft ExcelのWeb版(Excel Online)などで利用できる、最新の自動化ツールです。これまでExcelの自動化といえば「VBA(マクロ)」が有名でしたが、Office Scriptsはより現代的で、インターネット環境との相性が良いのが特徴です。
このツールを使うと、マウスで何度もクリックして作っていた「グラフ」を、プログラムに命令するだけで一瞬で作れるようになります。プログラムと聞くと身構えてしまうかもしれませんが、Office Scriptsは「TypeScript(タイプスクリプト)」という、世界中で使われている学びやすい言葉を使っています。パソコンの操作に自信がない方でも、お手本を真似するだけで簡単に始められます。
自動化の最大のメリットは、「人為的なミスがなくなること」と「時間を節約できること」です。毎週のレポート作成や、大量のデータ分析でグラフが必要な時に、スクリプトがあなたの代わりに働いてくれます。それでは、具体的なグラフの作り方を学んでいきましょう。
2. グラフ作成の基本ステップ!「データ」と「範囲」を理解しよう
Excelでグラフを作る時、皆さんはまず何をしますか?おそらく、グラフにしたい数値が入っているセルをマウスでドラッグして選択しますよね。Office Scriptsでも考え方は全く同じです。
スクリプトの中で最初に行うのは、「どのセルのデータをグラフにするか」を指定することです。このデータの場所をプログラムの世界では「Range(レンジ)」と呼びます。例えば、A1セルからB10セルまでデータがあるなら、「A1:B10」という範囲をスクリプトに教えてあげる必要があります。
また、グラフを表示する「土台」となるシートの準備も必要です。今開いているシートを取得するコードを書くことから、すべての物語が始まります。料理で例えるなら、シートは「まな板」、データは「食材」のようなものです。これらが揃って初めて、グラフという「料理」を完成させることができます。
3. 一番シンプル!「棒グラフ」を自動生成するコード
まずは、データの比較に便利な「棒グラフ(Clustered Column)」を作ってみましょう。棒グラフは、売上の比較やアンケート結果の集計などで最もよく使われるグラフの一つです。
下記のコードは、シートにある「A1からB5」の範囲にあるデータを使って、標準的な棒グラフを作成するものです。コードの中にある「addChart」という命令が、グラフを新しく作り出す「魔法の言葉」になっています。
function main(workbook: ExcelScript.Workbook) {
// 1. 今開いているワークシートを取得します
const sheet = workbook.getActiveWorksheet();
// 2. グラフの元になるデータの範囲(A1からB5)を指定します
const dataRange = sheet.getRange("A1:B5");
// 3. 棒グラフを追加します。
// ExcelScript.ChartType.columnClustered は「集合縦棒グラフ」という意味です
const chart = sheet.addChart(ExcelScript.ChartType.columnClustered, dataRange);
// 4. グラフにタイトルをつけて分かりやすくします
chart.setTitle("月別売上データ");
}
このスクリプトを実行すると、指定した範囲のデータに基づいて縦棒グラフが画面に現れます。自分で行う「挿入」メニューからグラフを選ぶ手間が省けるので、これだけでも非常に便利です。
4. 変化を読み取る!「折れ線グラフ」へのカスタマイズ
次に、時系列での変化(時間の経過とともに数値がどう変わったか)を見るのに最適な「折れ線グラフ(Line)」を作ってみましょう。棒グラフのコードと似ていますが、グラフの種類を指定する部分が少しだけ変わります。
プログラムの面白いところは、一部分を書き換えるだけで全く別の結果が得られることです。「columnClustered(棒グラフ)」を「line(折れ線)」に変更するだけで、Excelは瞬時に折れ線グラフを描画してくれます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// データの範囲を指定(今回はA1からC10など、少し広めを想定)
const dataRange = sheet.getRange("A1:C10");
// 折れ線グラフ(line)を作成します
const lineChart = sheet.addChart(ExcelScript.ChartType.line, dataRange);
// グラフの名前を設定
lineChart.setTitle("年間アクセス推移");
// グラフの表示位置を調整(例えば、E2セルの位置に配置)
lineChart.setPosition("E2");
}
「setPosition」という命令を使うことで、グラフがデータの真上に重なってしまうのを防ぎ、好きな場所に配置することができます。これで、シートが見づらくなる心配もありませんね。
5. 割合を一目で確認!「円グラフ」を作成するテクニック
市場シェアや、予算の配分など、全体に対する割合を示したいときは「円グラフ(Pie)」の出番です。円グラフは、一つのデータ列(例えば、項目名と数値)を視覚化するのに向いています。
Office Scriptsでは、円グラフの色やラベルも細かく設定できますが、まずは基本の形を作れるようになりましょう。初心者の方は、まずは「どのデータを使って」「どの種類のグラフを作るか」という2点に集中するのが上達の近道です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// 円グラフ用のデータ範囲(項目の名前と数値の2列)
const dataRange = sheet.getRange("A1:B6");
// 円グラフ(pie)を作成します
const pieChart = sheet.addChart(ExcelScript.ChartType.pie, dataRange);
// タイトルを「売上構成比」に設定
pieChart.setTitle("売上構成比");
}
円グラフを作成した際、データが多いと少し見づらくなることがありますが、そんな時は「データラベル」を表示する設定を追加することで、数字を直接円の中に表示させることも可能です。
6. グラフの見た目を整える!色やスタイルの編集
グラフを作るだけでなく、「編集(エディット)」ができるのもOffice Scriptsの強みです。例えば、グラフの色を会社のイメージカラーに合わせたり、フォントを大きくして見やすくしたりすることができます。
「見た目を整える」作業は、手動だと時間がかかりますが、コードを使えば一瞬です。特に「ChartLayout」という機能を使うと、あらかじめExcelに用意されている「クイックレイアウト」を適用することもできます。これにより、プロが作ったようなデザインのグラフが自動で完成します。
また、グラフのサイズを変更する「setHeight」や「setWidth」という命令もあります。これらを使えば、ダッシュボードのように複数のグラフを同じサイズで綺麗に並べることができ、会議資料のクオリティが劇的に向上します。
7. 応用編:古いグラフを削除して新しく作り直す自動化
自動化を運用していると、「ボタンを押すたびにグラフが増えて困る!」という状況になることがあります。同じ場所に新しいグラフを作りたいときは、まず「古いグラフを消す」という処理をコードに加えるのが賢いやり方です。
この応用テクニックを使えば、常に最新のデータに基づいたグラフだけがシートに残るようになります。初心者のうちは難しく感じるかもしれませんが、「全部消してから作る」という流れを覚えるだけで、スクリプトの使い勝手がぐんと良くなります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// シートにあるすべてのグラフを取得します
const charts = sheet.getCharts();
// もしグラフが既にあったら、最初の1つを削除します
if (charts.length > 0) {
charts[0].delete();
}
// 新しいグラフ(積み上げ棒グラフなど)を作成
const dataRange = sheet.getRange("A1:D10");
const newChart = sheet.addChart(ExcelScript.ChartType.columnStacked, dataRange);
newChart.setTitle("最新の集計グラフ");
}
このコードにある「if(イフ)」というのは、「もし〜だったら」という条件分岐の命令です。「もしグラフがあったら削除してね」という指示を出すことで、エラーを防ぎつつスマートに自動化を実行できます。
8. 挫折しないためのコツ!エラーが出た時の対処法
初めてコードを書くとき、一番怖いのが「エラー」ですよね。画面に赤い文字が出るとびっくりしてしまいますが、実はエラーは「どこが間違っているか教えてくれるヒント」にすぎません。プログラミングにおいて、エラーが出ないことは稀ですので、怖がらなくて大丈夫です。
よくある間違いは、セルの範囲指定ミスです。「A1:B10」と書くべきところを「A1-B10」と書いてしまったり、全角と半角を間違えて入力してしまったりすることです。Office Scripts(TypeScript)は、半角の英数字で書くのが基本ルールです。また、命令の最後にある「;(セミコロン)」を忘れないようにしましょう。
もし動かない時は、まず「カッコの数は合っているか」「スペルミスはないか」を確認してみてください。簡単なミスを修正していくだけで、自然と「プログラムの書き方」が身についていきます。慣れてくれば、Excelの作業がどんどん楽になり、仕事が楽しくなるはずです。まずは一つ、自分の手でグラフを作ってみるところから始めてみましょう!