当サイトの記事にはプロモーションが含まれています。

初心者でもできる!GASでスプレッドシートをPDF化してメール送信する方法

パソコンパソコン・スマホ教室
スポンサーリンク

日々の業務で「請求書」や「報告書」を作成し、それをPDFにしてメールで送信する作業、手間がかかりますよね。特に、パソコンやスマホに詳しくない方にとっては、操作が難しく感じられるかもしれません。しかし、Google Apps Script(GAS)を使えば、この一連の作業を自動化することができます。今回は、初心者の方でもわかりやすいように、ステップ・バイ・ステップで解説していきます。

スポンサーリンク

目次

Googleスプレッドシートのイメージ

Googleスプレッドシートのイメージ

GASとは?

Google Apps Script(GAS)は、Googleが提供するスクリプト言語で、Googleの各種サービス(スプレッドシート、ドキュメント、Gmailなど)を自動化することができます。プログラミングの知識がなくても、簡単な操作で自動化が可能です。

なぜGASを使うのか?

例えば、毎月100件以上の請求書を手作業でPDF化し、メールで送信しているとします。この作業を手動で行うと、非常に時間がかかり、ミスも発生しやすくなります。GASを使うことで、これらの作業を自動化し、時間を大幅に節約することができます。

必要な準備

まず、以下の準備を整えましょう

ここがポイント!

  • Googleスプレッドシート顧客情報や送信内容を管理するシートを作成します。
  • Googleドキュメント請求書や報告書のテンプレートを作成します。
  • GoogleドライブPDFファイルを保存するフォルダを作成します。
  • GASエディタスクリプトを記述するためのエディタを開きます。

ステップ1スプレッドシートの準備

スプレッドシートには、以下のような情報を入力します

ここがポイント!

  • 顧客名請求書を送る相手の名前
  • メールアドレス請求書を送る相手のメールアドレス
  • 請求金額請求する金額
  • 送信ステータス送信済みか未送信かを管理するための列

この情報をもとに、GASで自動化を行います。

ステップ2Googleドキュメントのテンプレート作成

請求書や報告書のテンプレートをGoogleドキュメントで作成します。テンプレート内には、以下のようなプレースホルダーを設定します

ここがポイント!

  • {{顧客名}}顧客の名前が入る場所
  • {{請求金額}}請求する金額が入る場所

これらのプレースホルダーは、後でGASでスプレッドシートのデータと置き換えられます。

ステップ3GASエディタでスクリプトを記述

GASエディタを開き、以下のようなスクリプトを記述します

function sendInvoice() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('顧客情報');
  const data = sheet.getDataRange().getValues();
  const templateId = 'テンプレートのID';
  const folderId = '保存先フォルダのID';
  
  data.forEach(row => {
    const customerName = row;
    const email = row;
    const amount = row;
    const status = row;
    
    if (status !== '送信済み') {
      const doc = DocumentApp.openById(templateId).copy('請求書_' + customerName);
      const body = doc.getBody();
      body.replaceText('{{顧客名}}', customerName);
      body.replaceText('{{請求金額}}', amount);
      doc.saveAndClose();
      
      const pdf = DriveApp.getFileById(doc.getId()).getAs('application/pdf');
      const folder = DriveApp.getFolderById(folderId);
      folder.createFile(pdf);
      
      GmailApp.sendEmail(email, '請求書のご案内', '添付のPDFをご確認ください。', {
        attachments: 
      });
      
      sheet.getRange(row.getRow(), 4).setValue('送信済み');
    }
  });
}

このスクリプトは、スプレッドシートのデータを読み取り、テンプレートをコピーして顧客情報を差し込み、PDFとして保存し、メールで送信するという一連の流れを自動で行います。

ステップ4トリガーの設定

GASでは、特定の時間や条件で自動的にスクリプトを実行する「トリガー」を設定することができます。例えば、毎月1日に自動で請求書を送信したい場合、以下の手順でトリガーを設定します

  1. GASエディタで「時計マーク」のアイコンをクリックします。
  2. 「トリガーを追加」をクリックします。
  3. 実行する関数として「sendInvoice」を選択します。
  4. イベントの種類として「時間主導型」を選択し、実行頻度を設定します。
  5. 「保存」をクリックして設定を完了します。

これで、設定した日時に自動でスクリプトが実行されるようになります。

よくある質問や疑問

Q1: GASのスクリプトがうまく動作しません。どうすればよいですか?

スクリプトが動作しない場合、以下の点を確認してください

  • 権限の設定初めてスクリプトを実行する際、Googleアカウントの権限を承認する必要があります。
  • テンプレートIDやフォルダIDの確認スクリプト内で使用しているIDが正しいか確認してください。
  • スプレッドシートのデータ構造スプレッドシートの列順やデータが正しいか確認してください。

それでも解決しない場合は、エラーメッセージを確認し、Googleで検索するか、専門家に相談してください。

Q2: 複数の顧客に対して一括で請求書を送信できますか?

はい、可能です。スクリプト内でスプレッドシートの各行をループ処理することで、複数の顧客に対して一括で請求書を送信することができます。

Q3: メールの本文に顧客名や請求金額を差し込むことはできますか?

はい、可能です。GmailApp.sendEmail()の本文に変数を埋め込むことで、顧客名や請求金額を差し込むことができます。

まとめ

Google Apps Scriptを活用することで、スプレッドシートからPDFを生成し、メールで自動送信する作業を効率化することができます。特に、パソコンやスマホに詳しくない方でも、ステップ・バイ・ステップで進めることで、業務の負担を軽減することができます。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました