【超初心者向け】スプレッドシートのグラフをLINEに定期投稿するGASをChatGPTを使って書いてみた

当ブログがオススメする

業務自動化サービスランキング

なお、業務効率化や工数削減を目指しているものの、どの業務から自動化すべきか、どのツールや手段が自社に合っているのかがあいまいな方は、「業務自動化プラン診断」をお試しください。

かかる時間は1分ほど。4つの質問に答えるだけで、あなたに最適な自動化対象業務や、推奨される自動化手段を診断してもらえます。

効率よく自社に適した業務効率化を知りたい方は、ぜひ一度お試しください。

\ 4つの質問に答えるだけ /

目次

完成形イメージ

はじめに

毎日の業務でスプレッドシートのグラフを手動で共有するのは面倒ですよね?

この記事では、ChatGPTの力を借りて、Google Apps Script (GAS) を活用した自動投稿方法を紹介します。

超初心者でもステップバイステップで実装可能! プログラミング経験がなくても、売上グラフや進捗データをLINEに毎日自動送信できるようになります。業務効率化の第一歩を踏み出しましょう。

こんなシーンでの活用に適しています

この自動化は、以下のような場面で特に役立ちます。

  • 営業チームの売上報告: 毎日更新される売上グラフをチームLINEグループに自動共有。手動報告の時間を節約。
  • 個人ダイエットや健康管理: 体重や運動量のグラフを自分のLINEに送信し、モチベーション維持。
  • プロジェクト進捗共有: タスク進捗グラフを上司やチームに定期投稿。ミスなく最新情報を届けられる。
  • 在庫管理やデータ監視: 在庫変動グラフを通知し、異常を即座に検知。

Google Apps Scriptで自動化する

メリット無料ツールのみで実装可能(GoogleアカウントとLINEアカウントがあればOK)。
手動作業が減り、毎日数分の時間を節約。業務効率が大幅アップ。
データ更新でグラフが自動反映されるため、常に最新情報を共有。
ChatGPTがコードを生成してくれるので、プログラミング知識不要。
デメリット初回設定に1-2時間かかる可能性あり(APIキー取得など)。
LINE APIの無料枠制限で、大量送信(例: 数千件/月)には不向き。
エラーが発生した場合、ChatGPTに相談する必要がある。
セキュリティ面で、アクセストークンを安全に管理しなければならない。
難易度・面倒さ難易度: 超初心者向け(★★☆☆☆)。クリックとコピペ中心で、プログラミング経験ゼロでも可能。
面倒さ: 初回設定がやや手間(★★★☆☆)。2-3時間で完了するが、API設定部分が専門的。慣れれば30分以内で調整可能。
特徴ChatGPTを活用してGASコードを自動生成。AIがプログラミングを代行。
Googleスプレッドシートのグラフを画像化し、LINE Messaging APIで送信。
時間トリガーで定期実行(例: 毎日朝8時)。柔軟にカスタマイズ可能。
ノーコードに近いアプローチで、業務自動化の入門に最適。
価格すべて無料。Google Sheets、GAS、ChatGPT(無料プラン)、LINE API(基本無料枠)を使用。
注意: LINE APIの大量利用時は有料プラン(月額数千円〜)が必要になる場合あり。

用意するもの

  • Googleアカウント(Gmailなど)
  • LINEアカウント(普段使っているものでOK)
  • パソコン(スマホでも可能だが、PC推奨)
  • ブラウザ(Google Chromeが簡単)

設定手順

🔹Step 1:Googleスプレッドシートで「graph」シートとグラフを準備

このステップでは、データを入力してグラフを作ります。プログラミングは不要で、Excelを使ったことがある人なら簡単です。

1-1. 新しいスプレッドシートを作成

1. ブラウザで Googleスプレッドシートにアクセス。

2. 左上の「+ 空白のスプレッドシート」をクリック。

3. 左上のファイル名「無題のスプレッドシート」をクリックし、「売上グラフ自動化」などわかりやすい名前に変更。

4.URLをメモ(例: https://docs.google.com/spreadsheets/d/1abc123xyz/edit)。後で「1abc123xyz」の部分が必要となります。

1-2. 「graph」シートを準備

  1. 画面下のシート名(デフォルトは「シート1」)をダブルクリック。

2. 「graph」と入力してEnterキーを押す。

3.「graph」シートにデータを入力。(例)A1セルに「日付」、B1セルに「売上」と入力。

4. A2セル以下に日付(例: 2025-09-01)、B2セル以下に数字(例: 100)を入れる。

5. 5-10行程度でOK。後でデータを更新してもグラフは自動で変わります。

1-3. グラフを作成

  1. データ範囲(例: A1:B6)をドラッグして選択。

2. 上部メニューの「挿入」 → 「グラフ」をクリック。

3. 右側に「グラフエディタ」が表示される:

  • 「設定」タブで「グラフの種類」を「折れ線グラフ」または「縦棒グラフ」に。
  • 「データ範囲」が正しいか確認(例: A1:B6)。
  • 「タイトル」を「売上推移」などにする(「カスタマイズ」タブ → 「グラフのタイトル」)。

4. グラフがシートに表示されたら完成! 動かすと位置が変わるので、左上に置いておくと良い。

5. シートを保存(自動保存されるが、Ctrl+Sで確認)。

🔹Step 2:LINE Messaging APIを設定

LINEにグラフ画像を送るには、Messaging APIを設定して「アクセストークン」と「ユーザーID」を取得します。少し専門的ですが、指示通りに進めれば大丈夫!

2-1. LINE公式アカウントに登録

  1. ブラウザで LINE Developers Consoleにアクセス。

2. LINEアカウントでログイン(普段のLINEのID/パスワード)。

3. 「プロバイダ」を作成:

  • 「プロバイダ作成」をクリック。
  • 名前を「GAS自動投稿」など入力 → 「作成」。

4. 「Messaging API」チャネルを作成:

  • 「チャネル作成」 → 「Messaging API」を選択。

LINE公式アカウントを作成する必要があります。下記指示に従って「LINE公式アカウントを作成する」をクリックします。

「SMS認証を行う」をクリックします。

電話番号を入力し「SMSを送信」をクリックします。

送られてきた認証番号を入力し「確認」をクリックします。

必要な項目を入力します。

入力が終わったら「確認」をクリックします。

次に、設定→Messaging API→Messaging APIを利用する、をクリックします。

LINE Developers Consoleへ戻ります。GAS自動投稿→BBカフェ会の順にクリックします。

Messaging API設定タブをクリックします。「ボットのベーシックID」は公式LINEのIDです。

同ページ(Messaging API)の下までスクロールするとチャンネルアクセストークン欄が表示されるので「発行」を押しアクセストークンを発行します。

チャンネルアクセストークンをコピーしてメモ帳に張り付けておきます。後ほどChatGPTで作成するコードで使います。

チャンネル基本設定にある「あなたのユーザーID」をコピーしてメモ帳に保存しておきます。後ほどChatGPTで作成するコードに使用します。

🔹Step 3:ChatGPTでGASコードを生成

ChatGPTを使って、スプレッドシートのグラフを画像化し、LINEに送るコードを作ります。プログラミング知識は不要で、コピペだけでOKです。

3-1. ChatGPTにアクセス

  1. ブラウザで ChatGPTにアクセス。
  2. OpenAIアカウントでログイン(なければ無料で作成)。
  3. 新しいチャットを開始。

3-2. プロンプトを入力してコード生成

  1. 以下のプロンプトをコピーしてChatGPTに貼り付け:
以下の機能を初心者向けにGoogle Apps Script (GAS) で実装するコードを書いてください:
- Googleスプレッドシートの「graph」シートにある最初のグラフをPNG画像としてエクスポート。
- LINE Messaging APIを使って、指定のユーザーIDにグラフ画像と「今日のグラフです!」というテキストを送信。
- コードはシンプルで、コメントを日本語で詳しく。エラーが出たときのログも出力。
- 以下の変数を埋め込む形で:
- LINE_CHANNEL_ACCESS_TOKEN = '[Step2のアクセストークン]'
- LINE_USER_ID = '[Step2のユーザーID]'
- SPREADSHEET_ID = '[Step1のスプレッドシートID]'

そうすると以下のようなコードが出力されます。

※ChatGPT等のLLMではアウトプットを100%コントロールすることができないので下記のコードと全く同じものが出力されるとは限りません。もし必要あれば以下のコードをコピペして、取り組んでください。

/***** 設定部分 *****/
// LINEのアクセストークン
const LINE_CHANNEL_ACCESS_TOKEN = '[Step2のアクセストークン]';
// 送信先ユーザーのID
const LINE_USER_ID = '[Step2のユーザーID]';
// スプレッドシートID
const SPREADSHEET_ID = '[Step1のスプレッドシートID]';

/***** メイン処理 *****/
function sendGraphToLine() {
  try {
    // ① スプレッドシートを開く
    console.log('スプレッドシートを開いています: ' + SPREADSHEET_ID);
    const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
    const sheet = ss.getSheetByName('graph');
    if (!sheet) throw new Error('「graph」シートが見つかりません');
    console.log('「graph」シートを正常に取得しました');

    // ② グラフ取得
    const charts = sheet.getCharts();
    console.log('取得したグラフ数: ' + charts.length);
    if (charts.length === 0) throw new Error('グラフが見つかりません');
    const chart = charts[0];
    console.log('グラフを正常に取得しました');

    // ③ PNG Blob取得
    const imageBlob = chart.getAs('image/png');
    console.log('PNG Blobを正常に取得しました');

    // ④ 一時的にDriveに保存
    const folder = DriveApp.getRootFolder();
    const file = folder.createFile(imageBlob.setName('graph.png')); // ファイル名を明示
    const fileId = file.getId();
    console.log('Driveに保存したファイルID: ' + fileId);

    // ⑤ Google Driveの共有リンクを作成
    file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
    const imageUrl = file.getDownloadUrl().replace('download', 'view'); // LINE用にURLを調整
    console.log('送信する画像URL: ' + imageUrl);

    // ⑥ テキスト送信
    console.log('LINEにテキストメッセージを送信中...');
    sendLineMessage('今日のグラフです!');

    // ⑦ 画像送信
    console.log('LINEに画像を送信中...');
    sendLineImage(imageUrl);

    // ⑧ 不要になったら削除
    console.log('一時ファイルの削除を10秒遅延...');
    Utilities.sleep(10000); // 10秒待機
    file.setTrashed(true);
    console.log('一時ファイルを削除しました');

  } catch (e) {
    console.error('エラーが発生しました: ' + e.message + ' (詳細: ' + e.stack + ')');
    sendLineMessage('エラーが発生しました: ' + e.message); // エラーをLINEに通知
  }
}

/***** LINEにテキストを送る関数 *****/
function sendLineMessage(text) {
  const url = 'https://api.line.me/v2/bot/message/push';
  const payload = {
    to: LINE_USER_ID,
    messages: [{ type: 'text', text: text }]
  };
  const options = {
    method: 'post',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
    },
    payload: JSON.stringify(payload)
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    console.log('テキスト送信レスポンス: ' + response.getContentText());
  } catch (err) {
    console.error('テキスト送信エラー: ' + err.message + ' (詳細: ' + err.stack + ')');
  }
}

/***** LINEに画像を送る関数 *****/
function sendLineImage(imageUrl) {
  const url = 'https://api.line.me/v2/bot/message/push';
  const payload = {
    to: LINE_USER_ID,
    messages: [
      {
        type: 'image',
        originalContentUrl: imageUrl,
        previewImageUrl: imageUrl
      }
    ]
  };
  const options = {
    method: 'post',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
    },
    payload: JSON.stringify(payload)
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    console.log('画像送信レスポンス: ' + response.getContentText());
  } catch (err) {
    console.error('画像送信エラー: ' + err.message + ' (詳細: ' + err.stack + ')');
    sendLineMessage('画像送信エラー: ' + err.message); // エラーをLINEに通知
  }
}
  1. コードの変数を下記にそって置き換えてください。
    • YOUR_SPREADSHEET_ID → Step1のURLの /d/1abc123xyz/edit の 1abc123xyz。
    • YOUR_LINE_CHANNEL_ACCESS_TOKEN → Step2のアクセストークン。
    • YOUR_LINE_USER_ID → StepのユーザーID。

🔹Step 4:GASを設定して定期実行

最後に、Sheetsにコードを貼り付けて実行し、毎日自動送信を設定します。

4-1. GASエディタを開く

  1. スプレッドシートに戻り、メニュー「拡張機能」 → 「Apps Script」をクリック。

2. 新しいタブでGASエディタが開く(「コード.gs」が表示)。

3. デフォルトのコード(function myFunction() {})を全削除

4-2. コードを貼り付けて保存

  1. Step3のChatGPTのコードを貼り付け。
  2. 変数(YOUR_SPREADSHEET_IDなど)を正しく置き換えたか再確認。

3.「保存」(ディスクアイコン)をクリック → プロジェクト名を「GraphToLine」など入力。

4-3. テスト実行

  1. 上部の「関数を選択」で「sendGraphToLine」を選択。「実行」ボタンをクリック。

2. 初回は権限許可が必要:

  • 「許可を確認」をクリック → Googleアカウントを選択。
  • 「詳細設定」 → 「GraphToLine(安全でない)に移動」 → 「許可」。

こちらの処理は初回実行時のみ必要です。

3. LINEアプリを確認し、「今日のグラフです!」とグラフ画像が届いたら成功!

4. エラーが出た場合:

  • 「表示」 → 「実行ログ」でエラーメッセージを確認。
  • エラーをコピーしてChatGPTに「このエラー: [エラーメッセージ] を修正する方法」と聞く。

よくある質問

グラフがLINEに送信されない場合、どうしたらいいですか?

まずGASの実行ログを確認(エラーメッセージをChatGPTに相談)。変数(スプレッドシートID、アクセストークン、ユーザーID)が正しいか再チェック。グラフが「graph」シートに1つだけ存在するか確認してください。

LINEのユーザーIDが取得できないのですが?

Botにテストメッセージを送り、Webhookログを確認。難しい場合、ChatGPTに「GASでLINEユーザーIDを取得するコード」とプロンプトを入力して補助コードを作成してください。

複数のグラフを送信したいです。どうカスタマイズしますか?

ChatGPTのプロンプトに「複数のグラフを送信するように修正」と追加。charts[0]をループ処理に変更すれば対応可能。

なかなかうまくいかないときは?

プログラミングが未経験の方にとっては少しハードルが高く「諦めるしかない⋯」と挫折するきっかけを生みかねません。

「社内で自動化したは良いものの、自分がやめたら引き継ぐ人がいない⋯」

「一つ自動化したら、他部署からも自動化を依頼されて自分の仕事が進まない⋯」

と不安な方もいますよね。

そこで、おすすめしたいのが「ジドウカ」です。

ジドウカは、これまで合計800タスク以上の業務の自動化をしてきた実績のある法人専用の自動化サービスです。

業務の一部を“タスク単位”で自動化し、【月額1万円から】安定運用できるサブスクリプション型のサービスです。 タスクを外注するため手離れもよく、技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけで自動化することが可能です。

「わたしが自動化したい内容って自動化できるんだろうか⋯」という方には、少額・短期間での「お試し開発」があるので、お気軽にご活用ください。

まとめ

この手順で、ChatGPTとGASを活用したスプレッドシートグラフのLINE自動投稿が実現します。無料で始められ、業務のルーチン作業を大幅に削減可能! まずはテスト環境で試してみてください。うまくいかない場合はChatGPTを活用して調整を。

さらに本格的な自動化をお考えなら、法人専用の「ジドウカ」サービスを検討を。合計800タスク以上の実績で、タスク単位の月額1万円から安定運用。技術不要で「この作業をラクにしたい」と伝えるだけ。お試し開発も利用可能です。公式サイトで詳細を確認→ ジドウカ公式サイト。自動化であなたの業務をよりスマートに!

自社で自動化する際によくある失敗ランキング

自動化ツールを導入すれば業務が自動化され、効率が劇的に向上する——。 そう考えている企業は多いですが、実際には多くの企業が自動化ツールを十分に活用できていません。 有名な自動化ツールであるRPAを例にあげても、導入した企業の実態は理想と大きく異なった結果となっています。

RPA導入企業の約60%が「あまり活用できていない」と回答

多くの企業がRPAを導入しているにも関わらず、約60%の企業が「期待したほど活用できていない」と感じているというデータです。これは、「導入しただけでは、業務改善につながらない」という現実を示しています。

RPAの効果を実感できない要因は『RPA開発が進んでいない』

「RPAの効果を実感できていない」と回答した企業の多くが、その理由として「RPA開発が進んでいない」「他業務・他部署への展開ができていない」ことを挙げています。   「〇〇業務はツールを導入すればすぐにラクになるはず」と思って、自社で自動化に挑戦した方も多いのではないでしょうか?しかし私たちには、こんな“あるあるの失敗談”がよく届きます。

🥇 第1位:初期設定でつまずき、結局断念…

思っていたより設定が複雑で、ツールの仕様を理解する前に挫折してしまうケース。 特にRPAツールやノーコードツールは、「慣れるまでが大変」という声が多いです。

🥈 第2位:担当者が辞めて、運用不能に…

担当者が社内で唯一のキーマンだった場合、その人がいなくなると全て止まってしまうという問題が発生します。 しかも、「誰も中身が分からないから触れない」という状況になりがち。

🥉 第3位:不具合や修正対応に時間がかかる…

自動化が止まったとき、「誰が見ればいいのか分からない」「ベンダーに相談するのも手間」という理由で、対応が後手に。 気づけばその対応に何時間も時間を取られ、本業に集中できなくなってしまうことも…。   実はよくある…自社で自動化に挑戦したときの“落とし穴” 共通するのは「すべて自社で完結しようとした」こと。 このようなケースに共通するのが、「最初から最後まで、すべて自社で完結しようとした」点です。 最初はうまくいっても、長期的に安定した自動化運用には、継続的な保守や柔軟な調整が不可欠です。

安定的に自動化したいならジドウカがおすすめ

 「ツールを入れただけ」では業務はラクになりません 「業務をラクにする自動化」のためには、設定・運用・トラブル対応まで含めてプロに任せるのが最も確実です。

ジドウカとは?

業務の一部を“タスク単位”で自動化し、月額で安定運用できるサブスクリプション型のサービスです。 技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけでOK。

ジドウカでできること(業務例)

・定期レポートの自動作成とSlack送信 ・受注データのExcel整形とkintone登録 ・競合サイトの自動モニタリングとアラート通知 ・営業リストの自動生成とCRMへの投入 など

ジドウカが選ばれる理由

弊社の自動化サービス「ジドウカ」は、1社1社、1タスク1タスクに合わせて完全オーダーメイドで開発するサービス担っています。
  • ヒアリングから開発・運用まで丸ごとサポート
  • トラブル発生時には即時対応
  • 月額料金内で自由に修正をご依頼可能
実際に多くのお客様から「自社での自動化運用に失敗した後に依頼してよかった」と高評価をいただいています。
目次