スプレッドシートのマクロでできることは?ボタン設置・使えないときの対処法

アイキャッチ_スプレッドシートのマクロでできること

スプレッドシートのマクロ(Google Apps Script: GAS)を活用すれば、単純なデータ入力作業から、Slackや生成AIといった外部サービスと連携する高度な業務フローまで、驚くほど広範な業務を自動化できます

この記事では、スプレッドシートのマクロで具体的に何ができるのか、初心者向けの基本的な作り方から、自作する際に直面しがちな壁、そしてその壁を乗り越えるための専門家への依頼という選択肢まで、独自の知見を交えて徹底的に解説します。

目次

スプレッドシートのマクロでできることとは

スプレッドシートのマクロは、一連の操作を記録し、自動で再現する機能です。

より正確に言えば、「Google Apps Script(通称GAS)」というプログラミング言語を使って、スプレッドシートをはじめとするGoogleのサービスを自由に操作する仕組みを指します。

GASは「ガス」と呼ばれています。ネットで検索する際は、ガス・電気・水道のガスと区別するために「GAS」で検索するとよいでしょう。

スプレッドシートのマクロでできること一覧

「スプレッドシートのマクロでできること」は多岐にわたりますが、大きく分けると次の3つです。

  • 定型業務の自動化
  • Googleサービスとの連携
  • 操作画面のカスタマイズ

これらの機能を活用することで、日々の業務効率を飛躍的に高めることが可能です。それぞれの項目について、具体的な活用例を見ていきましょう。

1. 繰り返しの定型業務を自動化する

多くのオフィスワーカーが時間を奪われているのが、毎日・毎週繰り返される定型業務です。スプレッドシートのマクロは、このような手作業を自動化する最も得意な分野です。

実際に歯科医院様のGooglスプレッドシート業務を自動化し、毎月3時間かかっていた工数を削減し、入力ミスを削減した事例があります。この結果、スタッフの人件費削減にもつながりました。

GAS_サービス資料_06歯科クリニック様の事例

その他には、以下のような自動化も可能です。

  • 複数の担当者から集めた日報データをマスターシートに転記する作業
  • 売上データからグラフ付きの週次レポートを自動で作成する
  • 請求書や見積書のフォーマットに顧客情報を入力して、ボタン一つでPDFとして出力する

これまで数十分かかっていた作業が数秒で完了すれば、チームはより創造的な仕事に時間を使えるようになります。

2. Googleの各種サービスと連携する

スプレッドシートのマクロがExcelのそれと大きく異なる点は、Googleの豊富なサービスとシームレスに連携できることです。マクロを動かすためのGoogle Apps Scriptは、Google Workspaceの様々なサービスを操作するために開発されました。

実際に、人材検収企業様にて、Googleフォームの回答が届いたら回答結果をスプレッドシートに反映させ、PDF化し、Gmailで回答者にPDFを送るというシステムを開発したことがあります。毎月135分かかっていた工数が0になりました。

GAS_サービス資料_05人材研修企業様の事例

その他に以下のような活用例も考えられます。

  • スプレッドシート上の特定セルの数値が一定以下だったら、Gmailを自動で送信する
  • 問い合わせフォームに入った注文に合わせて、Googleドキュメントで発注書を作成する
  • Gmailを受信したら、Googleカレンダーに商談の仮予定を自動で登録する

スプレッドシートに限らず、GmailやGoogleカレンダー、Googleドキュメントとの連携もスムーズに行えます。実際に多くの企業様から、Google Workspaceツールの連携依頼をお寄せいただきます。

3. ボタンやカスタムメニューで操作しやすくする

作成したマクロは、自分だけでなくチームの誰もが簡単に使えるようにしたいこと多いでしょう。

スプレッドシートのマクロでは、シート上にクリック可能な「ボタン」を設置したり、オリジナルの「カスタムメニュー」をメニューバーに追加したりできます。

例えば、「データ整理」というボタンをクリックするだけで、複雑なデータ集計から整形までが一瞬で完了する、といった仕組みを作れます。

メニューバーに設置したボタンを押す様子

上記動画のようなボタンは以下のコードで実装しました。

// ==========================
// ① シートを開いたときにメニューを作成
// ==========================
function onOpen() {
  const ui = SpreadsheetApp.getUi();

  // --- メインメニュー ---
  // メニューバーに記載されるボタン名
  const mainMenu = ui.createMenu('GASメニュー');

  // --- カテゴリ①:データ処理 ---
  // 副ボタンの名前
  const dataMenu = ui.createMenu('📊 データ処理')
    // 副々ボタンの名前
    .addItem('データ整理',  'cleanData')
    .addItem('重複削除',    'removeDuplicates')
    .addItem('バックアップ', 'backupData');

  // --- カテゴリ②:レポート出力 ---
  // 副ボタンの名前
  const reportMenu = ui.createMenu('📈 レポート出力')
    // 副々ボタンの名前
    .addItem('月次レポート作成', 'createMonthlyReport')
    .addItem('CSV書き出し',     'exportCsv');

  // --- カテゴリ③:管理ツール ---
  // 副ボタンの名前
  const adminMenu = ui.createMenu('⚙️ 管理ツール')
    // 副々ボタンの名前
    .addItem('設定確認', 'showSettings')
    .addItem('ログ確認', 'showLogs');

  // --- メインメニューにカテゴリを追加 ---
  mainMenu
    .addSubMenu(dataMenu)
    .addSubMenu(reportMenu)
    .addSubMenu(adminMenu)
    .addToUi();
}


// ==========================
// ② 各ボタンの処理(ダミー)
// ==========================

// --- データ処理 ---
function cleanData() {
  SpreadsheetApp.getUi().alert('データ整理を実行しました。');
}

function removeDuplicates() {
  SpreadsheetApp.getUi().alert('重複削除を実行しました。');
}

function backupData() {
  SpreadsheetApp.getUi().alert('バックアップを作成しました。');
}

// --- レポート出力 ---
function createMonthlyReport() {
  SpreadsheetApp.getUi().alert('月次レポートを作成しました。');
}

function exportCsv() {
  SpreadsheetApp.getUi().alert('CSVを出力しました。');
}

// --- 管理ツール ---
function showSettings() {
  SpreadsheetApp.getUi().alert('現在の設定を表示します。');
}

// --- ログを表示 ---
function showLogs() {
  SpreadsheetApp.getUi().alert('ログを表示します。');
}

プログラミングの知識がないメンバーがコード画面を開かずに、直感的に操作できるため、業務の属人化を防ぎ、チーム全体の生産性を底上げできます。

このようなユーザーインターフェースの改善も、スプレッドシートのマクロでできることの大きな魅力です。

スプレッドシートのマクロの作り方【初心者向け】

マクロの可能性を感じていただけたところで、ここからは具体的な作り方の第一歩をご紹介します。

「プログラミングは難しそう」と感じる方でも、まずは簡単な方法から試すことで、自動化の便利さを実感できるはずです。ここでは、初心者向けの2つのステップに分けて解説します。

1. まずはマクロの記録機能を使ってみよう

もっとも手軽にマクロを作成する方法が「マクロの記録」機能です。

これは、ユーザーが行ったスプレッドシート上の操作をそのまま記録し、スクリプトとして自動生成してくれる機能です。

手順は非常にシンプルです。

  1. メニューバーの「拡張機能」から「マクロ」を選び、「マクロを記録」をクリックする
  2. 記録が開始されたら、自動化したい一連の操作(例:セルの色を変える、特定の文字を入力する)を実際に行う
  3. 操作が終わったら「保存」を押す
  4. マクロに名前を付ける
  5. ショートカットキーを設定する

次回からは、マクロメニューから保存したマクロを実行するだけで、記録した操作が瞬時に再現されます。設定したショートカットキーを押して実行するのも手軽です。

次の動画は、実際にB5:B9の範囲の値をコピーし、D5:D9に貼り付ける操作をマクロに記録し、再実行してみた様子です。

マクロの記録からマクロの再実行の様子

コピーにはCtrl+Cのショートカットキーを使っています。また、記録したマクロの実行にもショートカットキー(Ctrl+Alt+Shift+1)を使っています。

2. クリックで実行できるボタンを作成しよう

記録したマクロを、より使いやすくするために「ボタン」に割り当ててみましょう。

シート上に設置した図形をクリックするだけで、誰でも簡単にマクロを実行できるようになります。

次の手順でボタンを設置できます。

記録したマクロを図形に登録する様子
STEP
メニューの「挿入」から「図形描画」を選択する
STEP
好きな形やテキストでボタンのデザインを作成する
STEP
作成した図形をシート上に配置する
STEP
メニューの「拡張機能」から「Apps Script」を選択する
STEP
「マクロ」ファイルを選択し、そこに書かれている処理の名前をコピーする

functionという文字の次に書かれているのが、処理の名前です。名前をコピーしたら、Apps Scriptの画面は閉じて構いません。

マクロの記録で作った処理の名前
STEP
図形を右クリック(または図形の右上のメニューアイコンをクリック)し、「スクリプトを割り当て」を選択
STEP
先ほど記録機能で保存したマクロの名前(関数名)を正確に入力する
STEP
「OK」をクリックする

これで、図形がクリック可能なボタンとして機能するようになります。

スプレッドシートのマクロでつまずく3つの壁

「マクロの記録」や簡単なボタン設置を試す中で、このように感じたかもしれません。

  • 思った通りに動かない
  • これ以上のことはできないのか?
  • マクロって使えないな

ここでは、多くのマクロ初心者がつまずきがちな3つの壁を解説します。これらの壁の存在を理解することが、次のステップへ進むための重要な鍵となります。

1. マクロの記録機能だけでは限界がある

手軽で便利な「マクロの記録」機能ですが、残念ながら万能ではありません。記録できるのは、あくまでスプレッドシート上で行われた単純な操作に限られます。

例えば以下のような高度な操作は記録できません。

  • 条件によって処理を分岐させる(もしA列の値が10以上なら、B列を赤くするなど)
  • 複数のスプレッドシートを横断して複雑な処理を行う
  • PDF化の操作を自動化する

これらの自動化を実現するためには、記録機能で自動生成されたコードを元に、Google Apps Script(GAS)を直接編集・追記していくスキルが求められます。

2. Excelのマクロとは互換性がない

職場でExcelの利用経験が長い方ほど、陥りやすいのがこの問題です。Excelのマクロは「VBA(Visual Basic for Applications)」という言語で書かれています。

一方でスプレッドシートのマクロは「GAS(Google Apps Script)」という全く別の言語で動作します。

表計算ソフトプログラミング言語
ExcelVBA
GoogleスプレッドシートGAS

過去にExcelで作成した便利なマクロを、そのままスプレッドシートにコピー&ペーストして使うことはできません。

基本的な考え方に似ている部分はあるものの、文法や操作対象の指定方法などが大きく異なるため、GASを新しく学び直す必要があります。この言語の違いが、Excelに慣れたユーザーにとって移行の大きなハードルとなる場合があります。

もしも、ExcelからGoogleスプレッドシートへの移行をお考えの場合は、自動化ドットコムにご相談ください。

自動化ドットコムでは、お客様からの依頼で、VBAマクロ付きのExcelから、GAS付きのGoogleスプレッドシートへの移行をしたことがあります。

3. 原因不明のエラーで動かなくなる

自力でスクリプトを書き始めると、必ずと言っていいほど直面するのが「エラー」です。ほんの少しのタイプミスや、予期せぬデータの入力があっただけで、マクロは突然動かなくなってしまいます。

エラーメッセージを読み解き、コードのどこに問題があるのかを特定する作業(デバッグ)は、初心者にとって非常に難易度が高く、多くの時間を費やす原因です。

問題解決のために何時間も調査した結果、結局わからずに自動化そのものを諦めてしまうケースは少なくありません。本業の傍らでこのエラー解決に取り組むのは、多大な時間的コスト精神的負担を伴う可能性があります。

ChatGPTやGeminiなどの生成AIに質問しても、解決しない場合も少なくありません。「生成AIに聞いても解決しなかったから、自動化ドットコムに相談した」というお客様もいらっしゃいます。

複雑な自動化は専門家への依頼が近道

もしあなたが、これまで述べたような壁に直面し、「自力での解決は難しいかもしれない」と感じ始めているのであれば、専門家への開発依頼は非常に有効な選択肢です。

学習コストやエラー解決に費やす膨大な時間を考慮すれば、プロに任せる方が結果的にコストパフォーマンスが高いケースは少なくありません。

専門家に依頼する3つのメリット

専門家にマクロ開発を依頼することには、大きく分けて3つのメリットがあります。

1つ目は、圧倒的な「時間の節約」です。あなたがエラー解決に悩む時間を、専門家は数分で解決してくれるかもしれません。貴重な時間を本来集中すべきコア業務に充てることができます。

2つ目は、「品質と安定性の確保」です。プロが作成するコードは、エラーが起きにくいように様々な状況を想定して作られています。将来的な仕様変更にも対応しやすい、メンテナンス性の高いマクロを手にできます。

3つ目は、「業務改善への提案力」です。優れた専門家は、単に言われた通りに作るだけではありません。あなたの業務フロー全体を理解した上で、「実はこのような方法でもっと効率化できますよ」といった、より本質的な改善提案をしてくれることもあります。

開発代行の費用相場と依頼先の選び方

マクロ開発の費用は、依頼内容の複雑さによって大きく変動します。簡単なツールの場合は数万円から、業務システムに近い複雑なものでは数十万円以上になることもあります。

依頼先としては、個人で活動しているフリーランスに依頼できる「クラウドソーシング」と、法人として開発を請け負う「専門業者」が主な選択肢です。

手軽さや費用面ではクラウドソーシングにメリットがありますが、品質のばらつきや、納品後のサポートに不安が残る場合もあります。

一方で専門業者は、費用が比較的高くなる傾向がありますが、品質が安定しており、継続的なサポート体制が整っていることが多いのが特徴です。どちらを選ぶかは、依頼したい内容の重要度や予算、そして長期的な運用を見据えるかどうかで判断すると良いでしょう。

自動化ドットコムが選ばれる理由

私たち「自動化ドットコム」は、単なる開発代行サービスではありません。中小企業の皆様の業務課題に寄り添い、共に解決を目指す「パートナー」でありたいと考えています。

開発して終わりではない「継続的なサポート」にあります。納品後に仕様変更が必要になった場合や、新たな自動化の要望が出てきた際にも、迅速に対応可能です。

また、私たちは単にマクロを開発するだけでなく、お客様の業務全体の流れをヒアリングし、どこを自動化すれば最も効果が高いのか、という根本的な視点からのご提案を大切にしています。目先の作業を自動化するだけでなく、事業成長に繋がる業務改善の実現をサポートします。

その他にも、次のような理由から選ばれているのだと考えています。

  • 流れの「見える化」で共有・引き継ぎも安心の設計図
  • 将来を見据えた堅牢なコーディング
  • あらゆる不安に備えた安心設計
GAS_サービス資料_08選ばれる理由

まとめ|業務に合わせた最適な自動化を目指そう

この記事では、スプレッドシートのマクロでできることの具体例から、初心者向けの作り方、そして自作の際に直面しがちな壁について解説しました。

  • マクロでできること: 定型業務の自動化、Googleサービス連携、操作ボタンの作成など
  • 簡単な作り方: まずは「マクロの記録」機能を試し、ボタンに割り当ててみる
  • 自作の壁: 記録機能の限界、Excelとの非互換性、エラー解決の難しさ

簡単な繰り返し作業であれば、まずはご自身で「マクロの記録」機能を試してみるのが良いでしょう。一方で、複数のシステムが絡むような複雑な自動化や、エラー解決に時間をかけたくない場合、そして業務全体の効率化を目指すのであれば、専門家の力を借りるのが最も確実で早い解決策となります。

自動化ドットコムでは、あなたの会社の課題に合わせた最適な自動化ツールのご提案をしています。

「何から相談していいかわからない」という段階でも構いません。まずは無料相談にて、お気軽にお話をお聞かせください。

  • URLをコピーしました!

\ まずは無料で相談してみる /

この記事を書いた人

GASやVBAを使って、スプレッドシートやExcel作業を自動化しています。自分のつくったプログラムが、誰かの時間を節約できたらうれしいです。また、SEOライターとして、節約メディアや視覚障害メディアで執筆しています。広島県安芸郡府中町在住。

目次