質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

解決済

スプレッドシートの特定行(可変)を非表示にしてPDF化したいが、非表示が効かない

coool
coool

総合スコア17

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

1回答

0評価

0クリップ

234閲覧

投稿2022/05/27 07:16

実現したいこと

基本的な質問で恐縮ですが、お力をお借りできれば嬉しいです。。

ある特定の可変最終行から下の空白行(今回の例では10から200行まで)を非表示にして、PDFとしてGoogleDriveのフォルダに保存したいと考えています。

発生している問題・エラーメッセージ

hideRowsで一部行を非表示に設定しているにも関わらず、非表示にならずにそのままPDF化されてしまいます。

該当のソースコード

GAS

function sendmail(){ //スプレッドシートは全体公開済 var ssurl ="https://docs.google.com/spreadsheets/d/19RgDljf6rcNwd9GGvTawQMI3FHLMlVlmVJrwemoy_-g/edit#gid=0";  var sh = SpreadsheetApp.openByUrl(ssurl); var sheet = sh.getSheetByName("TEST"); var today = sheet.getRange("B2").getValue(); var today = Utilities.formatDate(new Date(today), 'JST', "yyyy/MM/dd"); var lastRow = sheet.getRange("B5").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); var name = sheet.getRange("F2").getValue(); console.log(lastRow) sheet.hideRows(lastRow+1,200-lastRow); exportSheetToPDF(sh,name,today); sheet.showRows(lastRow+1,200-lastRow); } function exportSheetToPDF(sh,name,today){ // PDF出力するシートを指定 const ssId = "19RgDljf6rcNwd9GGvTawQMI3FHLMlVlmVJrwemoy_-g"; const sheetId = sh.getSheetByName("TEST").getSheetId(); // スプレッドシートをPDF出力するためのURL const url = 'https://docs.google.com/spreadsheets/d/' + ssId + '/export?' // PDF出力のオプションを設定 const options = 'exportFormat=pdf&format=pdf' + '&gid=' + sheetId //PDFにするシートの「シートID」 + '&portrait=true' //true(縦) or false(横) + '&size=A4' //印刷サイズ + '&fitw=true' //true(幅を用紙に合わせる) or false(原寸大) + '&gridlines=false' //グリッドラインの表示有無 + '&range=A1%3AF200' //★POINT★セル範囲を指定 // %3A はコロン(:)を表す + '&top_margin=0.3' //TOPの調整 + '&bottom_margin=0.1' //BOTTOMの調整 + '&left_margin=0.25' //左側の調整 + '&right_margin=0.25' //右側の調整 const requestUrl = url + options ; //API使用のためのOAuth認証 const token = ScriptApp.getOAuthToken(); const params = { 'headers' : {'Authorization':'Bearer ' + token}, 'muteHttpExceptions' : true }; const response = UrlFetchApp.fetch(requestUrl, params); //Blobオブジェクトを作成 const blob = response.getBlob(); blob.setName( "【テスト】" +today+"_"+ name +'.pdf'); //PDFファイル名を設定 //指定のフォルダにPDFファイルを作成 const folder = DriveApp.getFolderById("任意のフォルダID"); folder.createFile(blob) var staySecond = 2; Utilities.sleep(staySecond * 1000); }

試したこと

sheet.hideRows(lastRow+1,200-lastRow);
の直後にスクリプトを強制停止すると、はじめて非表示がスプレッドシートに反映されるようです。

可変最終行から下を非表示にし、PDF化するという数式は以前自分で組んだことがありますが、そちらは問題なく機能しております。
まったく同じとはいかなくとも、似たような式で組んでいるこちらがうまくいかない理由が分からず、困惑しています。

基本的な内容で大変申し訳ありませんが、何卒よろしくお願いいたします!

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。