![見出し画像](https://assets.st-note.com/production/uploads/images/99130286/rectangle_large_type_2_efb8f37303050f4080df8091c438434f.png?width=1200)
GASの修正をChatGPTにやってもらって便利さを再認識した話
普段GASでコードを書くことが多いのですが、今回私がGASの修正方法がよく分からなくなった時にダメもとでChat GPTに相談したら解決してくれて感動したのでその共有です
まず私が作りたかったのは「スプレッドシート(以下SS)でPDF出力のボタンを作成し、実行を押すとPDF化されたSSが、SS自身が格納されているドライブのフォルダに格納される」という機能
そして作った関数がこれ(※ボタンにするコードは別で作りました)
function exportActiveSheetToPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ssid = ss.getId();
// 現在スプレッドシートが格納されているフォルダをエクスポート先に指定するためにIDを取得
const parentFolder = DriveApp.getFileById(ssid).getParents();
const folderid = parentFolder.next().getId();
// pdfに変換して取得
const pdf = ss.getAs('application/pdf').setName("PDFに変換しました");
// console.log(pdf.getContentType()); // application/pdf
// PDFをエクスポート
DriveApp.getFolderById(folderid).createFile(pdf); //GoogleドライブにPDFに変換したデータを保存
}
実行してみると上手くいきました
![](https://assets.st-note.com/img/1677580711197-wyxklE7R5X.png?width=1200)
ただ、ここで気になる点が一つ
横向きの表の出力を想定していたのに、PDFが縦向きだから余白がめちゃくちゃ多いし見づらい!!!
![](https://assets.st-note.com/img/1677580834442-HE6byIHXs9.png?width=1200)
なのでPDFが横向きで出力されて欲しいが、調べてもそもそもの作りを変えないといけないっぽくて悩んでました
困った時はとりあえずChatGPTに聞いてみよう!ということで
「下記のGASで出力されるPDFを横向きにして?」と投げてみました。
すると、驚くべきことに5秒くらいで下記のメッセージを返してくれた
![](https://assets.st-note.com/img/1677581105392-NUxIOOoYbS.png?width=1200)
私が書いたコードの大枠を残したまま、PDFを変換する部分のコードだけを修正してくれました。(全体のコードは最後に載せておきます)
これこのままコピペしたら横向きで出力されました
元のコードと見比べることで、私も理解できましたし、めちゃくちゃ便利やんけ!!てなりました
いい時代だなと思うとともに、AIをうまく使いこなせるようにならないと取り残されていくなとも感じました
全部無料で誰でもできるので、皆さんも是非遊んでみてください
分からないことあれば私がなんでもお答えします!!
Discord : Kaito#9524
IG : kaito_ishizuka
ChatGPTが書いてくれたコード↓
function exportActiveSheetToPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ssid = ss.getId();
// 現在スプレッドシートが格納されているフォルダをエクスポート先に指定するためにIDを取得
const parentFolder = DriveApp.getFileById(ssid).getParents();
const folderid = parentFolder.next().getId();
// PDFに変換して取得
const url = "https://docs.google.com/spreadsheets/d/" + ssid + "/export?exportFormat=pdf&format=pdf&portrait=false";
const options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
};
const response = UrlFetchApp.fetch(url, options);
const blob = response.getBlob().setName("PDFに変換しました");
// PDFをエクスポート
DriveApp.getFolderById(folderid).createFile(blob); //GoogleドライブにPDFに変換したデータを保存
}
この記事が気に入ったらサポートをしてみませんか?