- 作成日 : 2025年9月22日
スプレッドシートでボタンを作成してスクリプトを実行するには?
Googleスプレッドシートにボタンを配置してGoogle Apps Script(GAS)を実行することで、複雑な処理をワンクリックで自動化できます。本記事では、スクリプトの基本的な実行方法から、ボタンの作成と割り当てなどを詳しく解説します。マクロ機能やカスタムボタンを活用すれば、定型作業を効率化できます。
目次
スプレッドシートでスクリプトを実行する方法
Google Apps Scriptエディタの基本的な使い方
スプレッドシートでスクリプトを実行するには、まずGoogle Apps Scriptエディタを開いて、実行したい処理をコードとして記述する必要があります。このエディタは、スプレッドシートに統合された開発環境で、JavaScriptベースの言語でプログラムを作成できます。
STEP1:スクリプトエディタを開く
- スプレッドシートを開く
- メニューバーの「拡張機能」をクリック
- 「Apps Script」を選択
- 新しいタブでスクリプトエディタが開く
STEP2:基本的なスクリプトを作成
function myFunction() {
// アクティブなスプレッドシートを取得
var sheet = SpreadsheetApp.getActiveSheet();
// A1セルに値を設定
sheet.getRange(“A1”).setValue(“Hello, World!”);
// メッセージを表示
SpreadsheetApp.getUi().alert(“スクリプトが実行されました”);}
STEP3:スクリプトを保存して実行
- Ctrl+S(Mac: Cmd+S)でプロジェクトを保存
- プロジェクト名を入力(例:「自動化スクリプト」)
- 実行ボタン(▶)をクリック
- 初回実行時は承認が必要
初回実行時には、Googleアカウントへのアクセス許可を求められます。これは、スクリプトがスプレッドシートのデータを操作するために必要な権限です。
メニューからスクリプトを実行する設定方法
カスタムメニューを作成することで、スプレッドシートの画面から直接スクリプトを実行できるようになります。この方法は、複数の関数を整理して提供する場合に特に有効です。(モバイルアプリでは表示されません。)
STEP1:カスタムメニューを作成するコードを記述
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu(‘カスタムメニュー’)
.addItem(‘データクリア’, ‘clearData’)
.addItem(‘自動計算’, ‘autoCalculate’)
.addSeparator()
.addItem(‘レポート作成’, ‘createReport’)
.addToUi();}
function clearData() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(“A2:Z1000”).clearContent();
SpreadsheetApp.getUi().alert(“データをクリアしました”);}
STEP2:スプレッドシートをリロード
- スクリプトを保存
- スプレッドシートのタブに戻る
- ページを更新(F5キー)
- メニューバーに「カスタムメニュー」が表示される
STEP3:メニューから関数を実行
- 追加された「カスタムメニュー」をクリック
- 実行したい項目を選択
- 初回は承認ダイアログが表示される
この方法により、プログラミング知識のないユーザーでも簡単にスクリプトを実行できるようになります。
トリガーを使った自動実行の設定
時間ベースやイベントベースのトリガーを設定することで、スクリプトを自動的に実行できます。定期的なデータ更新や、特定の操作時の処理を自動化する際に便利です。
STEP1:トリガー設定画面を開く
- Apps Scriptエディタの左側メニューから「トリガー」をクリック
- 「トリガーを追加」ボタンをクリック
STEP2:トリガーの詳細を設定
- 実行する関数を選択
- イベントのソースを選択(時間主導型/スプレッドシートから)
- イベントタイプを選択
- 時間主導型:分/時/日/週/月ベース
- スプレッドシート:開いた時/編集時/フォーム送信時
STEP3:トリガーを保存して有効化
- 「保存」ボタンをクリック
- 必要に応じて承認を行う
- トリガー一覧で動作状況を確認
トリガーを使用することで、夜間のデータバックアップや、定期的なレポート生成などを完全に自動化できます。
スプレッドシートにボタンを作成してスクリプトを実行する方法
図形描画でボタンを作成する手順
スプレッドシートに図形描画機能を使用して、カスタマイズ可能なボタンを作成します。
STEP1:図形描画ツールを開く
- スプレッドシートのメニューから「挿入」をクリック
- 「図形描画」を選択
- 新しい描画ウィンドウが開く
STEP2:ボタンのデザインを作成
- 図形アイコンをクリック
- 「図形」から角丸四角形を選択
- キャンバスにドラッグして描画
- 図形をダブルクリックしてテキストを入力(例:「実行」)
- 塗りつぶしの色、枠線、テキストスタイルを調整
STEP3:ボタンをスプレッドシートに挿入
- 「保存して閉じる」をクリック
- ボタンがスプレッドシート上に表示される
- ドラッグして適切な位置に配置
- サイズハンドルで大きさを調整
作成したボタンは、通常のセルの上に浮いているような形で配置され、セルの内容に影響を与えません。
ボタンにスクリプトを割り当てる設定
作成したボタンにスクリプトの関数を割り当てることで、クリック時に自動的に処理が実行されるようになります。この設定により、複雑な操作も簡単に実行できるようになります。
STEP1:スクリプトを準備
function buttonClick() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
// データ処理の例
for (var i = 2; i <= lastRow; i++) {
var value = sheet.getRange(i, 1).getValue();
var result = value * 2; // 簡単な計算例
sheet.getRange(i, 2).setValue(result);}
SpreadsheetApp.getUi().alert(“処理が完了しました”);}
STEP2:ボタンにスクリプトを割り当て
- 作成したボタンを右クリック(または三点メニュー)
- 「スクリプトを割り当て」を選択
- 関数名を入力(例:buttonClick)
- 「OK」をクリック
STEP3:動作確認
- ボタンをクリック
- 初回実行時は承認が必要
- スクリプトが実行されることを確認
注意点として、関数名は正確に入力する必要があり、大文字小文字も区別されます。
複数のボタンを効率的に管理する方法
複数の処理を実行する場合、それぞれにボタンを作成して整理することで、操作性が向上します。ボタンの配置やデザインを統一することで、プロフェッショナルな印象を与えることができます。
STEP1:ボタンのテンプレートを作成
- 最初のボタンを丁寧にデザイン
- ボタンを選択してコピー(Ctrl+C)
- 必要な数だけ貼り付け(Ctrl+V)
- それぞれのテキストを変更
STEP2:機能別にボタンを配置
// データインポート用
function importData() {
// インポート処理}
// データ検証用
function validateData() {
// 検証処理}
// レポート出力用
function exportReport() {
// 出力処理}
STEP3:ボタングループの作成
- 関連するボタンを近くに配置
- 背景に色付きの四角形を配置してグループ化
- ラベルを追加して機能を明確化
このような整理により、ユーザーが迷うことなく必要な機能を実行できるようになります。
ボタンの色使いやデザインの設定
ボタンのデザインを工夫することで、使いやすさと見た目の良さを両立できます。色使いやサイズ、配置を適切に設定することが重要です。
STEP1:効果的な色使い
- 実行系:青や緑(ポジティブなアクション)
- 削除系:赤やオレンジ(注意を促す)
- 情報系:グレーや薄い青(補助的な機能)
STEP2:アイコンの活用
- 図形描画でアイコンを追加
- Material Iconsから適切なアイコンを選択
- テキストと組み合わせて視認性向上
STEP3:ホバー効果の疑似実装
function addButtonDescription() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(“A1”).setNote(“このボタンをクリックすると、データが自動処理されます”);}
ユーザビリティを考慮したデザインにより、操作ミスを減らし、作業効率を向上させることができます。
スクリプトをスマホから実行する方法
モバイルアプリでの制限事項と代替案
Googleスプレッドシートのモバイルアプリでは、ボタンのクリックによるスクリプト実行がサポートされていません。たとえば次のことはできません。
- シートに置いたボタン(図形)をタップしてスクリプトを動かす
- スマホからApps Scriptのコードを直接編集する
- PCで作れる「カスタムメニュー」をスマホで表示する
- スマホから新しいトリガー(自動実行の設定)を追加・変更する
スマホでスクリプトを動かす代替方法
制限はありますが、いくつかの代替方法を使用することで、スマートフォンからもスクリプトを実行できます。代表的な方法は次の4つです。
- チェックボックスを使う
セルにチェックボックスを作り、「オンになったらスクリプトを実行する」というルール(onEdit関数)を組みます。スマホからチェックを入れるだけで処理を走らせられます。 - セルの編集をトリガーにする
特定のセルの値が変わったときにスクリプトが動くよう設定できます。例えば、セルに「実行」と入力したら処理開始 → 実行後に空に戻す、といった仕組みです。 - 時間ベースのトリガーを設定しておく
「毎日10時にバックアップを取る」など、時間で自動実行する仕組みをPCで事前に設定しておけば、スマホを操作しなくても自動で処理されます。 - Webアプリとして公開する
Apps Scriptを「Web App」にしておくと、専用のURLにスマホのブラウザからアクセスしてスクリプトを実行できます。ボタン付きの操作画面を作れば、スマホからも直感的に使えます。
チェックボックスを使った実行方法
セルのチェックボックスをオン・オフしたときにスクリプトが動くように設定する方法です。スマホでも使うことができ、タップだけで操作できます。
STEP1:チェックボックスを設置
- スプレッドシートでセルを選択(例:A1)
- メニューから「挿入」→「チェックボックス」を選択
- セルにオン/オフのチェックボックスが表示
STEP2:onEdit関数を作成
function onEdit(e) {
var range = e.range;
var sheet = e.source.getActiveSheet();
// A1セルのチェックボックスが変更された場合
if (range.getA1Notation() === ‘A1’ && range.getValue() === true) {
// 処理を実行
executeProcess();
// チェックボックスを自動的にオフに戻す
range.setValue(false);}}
function executeProcess() {
// 実行したい処理
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(“B1”).setValue(“実行完了: ” + new Date());}
STEP3:モバイルで動作確認
- スマートフォンでスプレッドシートを開く
- チェックボックスをタップ
- スクリプトが実行されることを確認
この方法なら、モバイルアプリからでも確実にスクリプトを実行できます。
Web Appとして公開する高度な方法
Google Apps ScriptをWeb Appとして公開することで、専用のWebページからスクリプトを実行できます。この方法は最も柔軟性が高く、複雑な操作にも対応可能です。
STEP1:Web App用のコードを作成
function doGet() {
return HtmlService.createHtmlOutputFromFile(‘index’)
.setTitle(‘スプレッドシート操作パネル’)
.setWidth(300);}
function processData(action) {
var sheet = SpreadsheetApp.openById(‘YOUR_SPREADSHEET_ID’).getActiveSheet();
switch(action) {
case ‘clear’:
sheet.clear();
return ‘データをクリアしました’;
case ‘calculate’:
// 計算処理
return ‘計算が完了しました’;
default:
return ‘不明なアクション’;}}
STEP2:HTMLファイルを作成
- Apps Scriptエディタで「+」ボタンをクリック
- 「HTML」を選択
- ファイル名を「index」に設定
- 以下のHTMLを記述
<!DOCTYPE html>
<html>
<head>
<base target=”_top”>
<style>
button {
width: 100%;
padding: 10px;
margin: 5px 0;
font-size: 16px;}
</style>
</head>
<body>
<h3>操作パネル</h3>
<button onclick=”runScript(‘clear’)”>データクリア</button>
<button onclick=”runScript(‘calculate’)”>自動計算</button>
<div id=”result”></div>
<script>
function runScript(action) {
google.script.run
.withSuccessHandler(showResult)
.processData(action);}
function showResult(result) {
document.getElementById(‘result’).innerHTML = result;}
</script>
</body>
</html>
STEP3:Web Appとして公開
- 「デプロイ」→「新しいデプロイ」
- 種類で「ウェブアプリ」を選択
- アクセス権限を設定
- 「デプロイ」をクリック
- 生成されたURLをコピー
このURLをスマートフォンのブラウザで開くことで、どこからでもスクリプトを実行できるようになります。
スプレッドシートのボタン活用で自動化を進めよう
GoogleスプレッドシートでApps Scriptを使えば、繰り返し作業やデータ処理を自動化できます。図形や画像にスクリプトを割り当てることで、ボタンのようにワンクリックで処理を実行でき、操作の手間を減らせます。スマホアプリではボタン実行はできませんが、チェックボックスやWeb Appなどの代替手段を活用すればモバイル環境でも自動化を取り入れられます。
日々の業務に合わせてボタンとスクリプトを組み合わせ、効率的なシート運用を実現しましょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
SLOPE関数の使い方:エクセルで線形回帰の傾きを計算する方法
SLOPE関数は、2つのデータセット間の線形回帰直線の傾きを計算するエクセルの統計関数です。売上高と広告費の関係分析、気温と電力消費の相関調査、生産量とコストの関係把握、時系列データのトレンド分析など、2つの変数間の関係性を数値化する様々な…
詳しくみるスプレッドシートのオーナー権限を確認・変更するには?一括変更方法や注意点を解説
Googleスプレッドシートを組織で活用していると、人事異動や退職に伴いファイルのオーナー権限を変更する必要が生じます。オーナー権限を適切に権限を移行しなければデータの管理や業務の継続に支障が出る可能性があります。 本記事では、オーナー権限…
詳しくみるスプレッドシートでグリッド線を消すには?シート全体・特定範囲・印刷時の非表示方法からショートカットまで解説
スプレッドシートのグリッド線を消すことで、見栄えの良いレポートやプレゼンテーション資料を作成できます。Googleスプレッドシートでは、グリッド線の表示/非表示を柔軟に制御でき、画面表示と印刷時で異なる設定も可能です。 本記事では、シート全…
詳しくみるTEXT関数の使い方や利用シーンをわかりやすく解説
ExcelやGoogleスプレッドシートでデータを扱う際、数値や日付を特定の形式で表示したいことがよくあります。そのようなときに便利なのが「TEXT関数」です。この関数を使うことで、任意のフォーマットでデータを表示し、見やすく整形することが…
詳しくみるエクセルで平均を出す方法の基本と応用
エクセルを使用することで、数値データの平均を簡単に求めることができます。基本的な平均の算出方法から、離れたセルや異なるシートを参照した平均値の計算、更にはゼロを除外して平均を求めるテクニックまで、幅広く解説していきます。それぞれの手法を理解…
詳しくみるBASE関数の使い方!10進数を任意の基数に変換する方法
Excelの BASE関数 は、10進数を2進数・8進数・16進数など任意の基数に変換できる便利な関数です。Excel 2013以降で利用でき、2から36までの基数に対応しています。プログラミングのデバッグ、ネットワークのIPアドレス計算、…
詳しくみる