Google スプレッドシートの先頭シートをPDF変換しGoogleドライブに保存すると同時にプリンターに印刷する。

実現方法の概要

  1. Google Apps Script の作成: スプレッドシートに紐付いたGASプロジェクトを作成します。
  2. スクリプトの記述: PDFとして出力するURLを生成し、PDFファイルを作成して指定のGoogleドライブフォルダに保存するスクリプトを記述します。
  3. スクリプトの手動実行: Apps Script エディタから直接スクリプトを実行します。
  4. Google Drive の保存先フォルダーを「クラウド対応自動印刷」の監視フォルダーに設定し自動印刷する。

具体的な手順とスクリプトの例

  1. スプレッドシートを開く: PDF化したいGoogleスプレッドシートを開きます。
  2. Apps Script エディタを開く:
    • メニューバーから「拡張機能」>「Apps Script」を選択します。新しいタブでApps Scriptエディタが開きます。
  3. フォルダIDの取得と設定:
    • Googleドライブで、PDFを保存したいフォルダを開きます。
    • ブラウザのURLバーに表示されているURLを確認します。URLは通常 https://drive.google.com/drive/folders/あなたのフォルダID のようになっています。「あなたのフォルダID」の部分をコピーします。
    • 上記のスクリプトの var folderId = 'あなたのフォルダIDをここに貼り付けてください'; の部分を、コピーしたフォルダIDに置き換えます。
  4. スクリプトの保存:
    • Apps Scriptエディタで、フロッピーディスクのアイコン(プロジェクトを保存)をクリックするか、「ファイル」>「保存」を選択します。プロジェクト名を求められたら、分かりやすい名前(例: SpreadsheetToPdfManual)を付けます。
  5. スクリプトの手動実行:
    • Apps Scriptエディタの上部にあるツールバーで、実行したい関数名(この場合は saveSheetAsPdfManually)が選択されていることを確認します。
    • 実行ボタン(▶︎のアイコン)をクリックします。
    • 初回実行時には、Googleアカウントの認証を求められます。指示に従ってアクセスを許可してください。これは、スクリプトがGoogleドライブにアクセスしたり、スプレッドシートを操作したりするために必要です。
    • 実行が完了すると、スプレッドシート上に「PDF保存完了」というメッセージボックスが表示されます。
スクリプトの解説
  • function saveSheetAsPdfManually(): 関数名。これはトリガーと紐付けないため、任意の分かりやすい名前にできます。
  • var ss = SpreadsheetApp.getActiveSpreadsheet();: 編集イベントからスプレッドシートを取得する代わりに、現在開いているアクティブなスプレッドシートを取得します。
  • Browser.msgBox(...): スクリプトの実行結果をユーザーに通知するために、メッセージボックスを表示する行を追加します。

補足

  • 特定のシートをPDF化したい場合: 上記のスクリプトは、実行時にアクティブになっているシートをPDF化します。もし、常に特定のシート(例: 「集計」シート)をPDF化したい場合は、var sheet = ss.getActiveSheet(); の行を var sheet = ss.getSheetByName('シート名'); のように変更し、'シート名' の部分をPDF化したいシートの名前に置き換えてください。
  • メニューから実行する: より便利にするために、スプレッドシートのカスタムメニューにこのスクリプトを追加しています。
    • スクリプトに以下の関数を追加しています。
      function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('印刷') .addItem('現在のシートをPDFで保存', 'saveSheetAsPdfManually') .addToUi(); }
    • この onOpen() 関数は、スプレッドシートを開いたときに自動的に実行され、「PDF出力」というカスタムメニューが追加されます。
    • onOpen() 関数を追加したら、Apps Script エディタで onOpen を選択して一度実行してください(または、スプレッドシートを一度閉じて開き直してください)。
    • これで、スプレッドシートのメニューバーに「印刷」という項目が表示され、そこから「現在のシートをPDFで保存する」スクリプトを実行できるようになります。
  • これで、Google のマイドライブ\自動印刷 フォルダーに保存されたPDFファイルは「クラウド対応自動印刷」により自動的に印刷されます。