前提・実現したいこと
よくあるような見積書から請求書を生成するプログラムを作っています。
生成された請求書を共有できるようにしたいので、保存先を指定した共有フォルダにしました。
指定フォルダに用意しておいた請求書テンプレのコピーを生成することには成功したのですが、見積書からのデータを転記できません。。
発生している問題・エラーメッセージ
オブジェクト 請求書(〇〇) で関数 getRange が見つかりません。
このリストの中にgetRange
がなかったので、このようなエラーが出ている。
該当のソースコード
※内容を簡略化してあります。
function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('Custom') .addItem('請求書を生成', 'menuItem1') .addToUi(); } // First itemをクリックした時の処理 function menuItem1() { //現在のスプレットシートを取得する var sheet1 = SpreadsheetApp.getActiveSheet(); //コピー先のスプレットシートのid var templateid = "***"; var template = DriveApp.getFileById(templateid); //保存先フォルダオブジェクトの取得 var destfolderid = "***"; var destfolder = DriveApp.getFolderById(destfolderid); var name1 = sheet1.getRange(2, 2).getValue(); var name2 = sheet1.getRange(3, 2).getValue(); var filename = '請求書(' + name1 + ')'; var sheet = template.makeCopy(filename, destfolder); sheet.get //データを転記 //コピー先のシートの中のセルを指定して、コピー実行 sheet.getRange(2, 2).setValue(name1); ←ここでエラー sheet.getRange(3, 2).setValue(name2); }
試した事
var template = DriveApp.getFileById(templateid);
で作ったtemplateからでは、**getRange()**が呼べないようなので、コピー作成されたシートを名前で指定して取得し、**getRange()**を呼んでみました。
gas
1//現在のスプレットシートを取得する 2 var sheet1 = SpreadsheetApp.getActiveSheet(); 3 4 //コピー先のスプレットシートのid 5 var templateid = "14O0u_YKnbw4w8gwidynx80pMeGfnTWkzw6zatUAAmpI"; 6 var template = DriveApp.getFileById(templateid); 7 8 //保存先フォルダオブジェクトの取得 9 var destfolderid = "1s8k_JA49Vp0skfTRJ7spduq9iagXb5v_"; 10 var destfolder = DriveApp.getFolderById(destfolderid); 11 12 var name1 = sheet1.getRange(2, 2).getValue(); 13 var name2 = sheet1.getRange(3, 2).getValue(); 14 15 var filename = '請求書(' + name1 + ')'; 16 var sheet = template.makeCopy(filename, destfolder); 17 18 var copiedSheet = SpreadsheetApp.getActiveSpreadsheet(); //追加 19 var invoice = copiedSheet.getSheetByName(filename); //追加 20 Logger.log(invoice); 21 22 //データを転記 23 //コピー先のシートの中のセルを指定して、コピー実行 24 invoice.getRange(2, 2).setValue(name1); 25 invoice.getRange(3, 2).setValue(name2);
しかし、invoice
はnullで、結局**getRange()**は呼べなかったです。。。
補足情報(FW/ツールのバージョンなど)
こちらを参考に、指定フォルダへのコピー作成を実装できました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/17 01:28
2019/12/17 01:30