スクリプトを次のように変更しました。
function readRows(){
var nums = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"];
function toText(num) {
var s;
if (num >= 100)
throw "Too big";
if (num > 10) {
if (num < 20) {
switch (num) {
case 11:
return "Eleven";
case 12:
return "Twelve";
case 13:
return "Thirteen";
case 14:
return "fourteen";
case 15:
return "Fifteen";
case 16:
return "sixteen";
case 17:
return "seventeen";
case 18:
return "eighteen";
case 19:
return "nineteen";
default:
return toText(num-10)+"teen";
}
}
switch (Math.floor(num / 10)) {
case 2:
s = "Twenty";
break;
case 3:
s = "Thirty";
break;
case 4:
s = "Fourty";
break;
case 5:
s = "Fifty";
break;
case 6:
s= "SiXty";
break;
case 7:
s = "Seventy";
break;
default:
s = toText(Math.floor(num/10))+"ty";
break;
}
if(num > 20 && num < 30)
{
return "twenty"+toText(num-20);
}
if(num > 30 && num < 40)
{
return "thirty"+toText(num-30);
}
if(num > 40 && num < 50)
{
return "fourty"+toText(num-40);
}
if(num > 50 && num < 60)
{
return "fifty"+toText(num-50);
}
if(num > 60 && num < 70)
{
return "sixTy"+toText(num-60);
}
if(num == 70)
{
return "sEvEnty";
}
if (num % 10 > 0)
return s + toText(num % 10);
return s;
}
return nums[num];
}
var sheet = SpreadsheetApp.getActiveSheet();
var lastCol = sheet.getLastColumn();
var length = sheet.getMaxColumns();
var rows = sheet.getMaxRows();
var Name = sheet.getRange(2, 2).getValue();
var data = sheet.getRange(2, 1, 2, lastCol);
var template = "spreadsheet key";
var fileName = "Application document template.docx";
var newFile = DocsList.getFileById(template).makeCopy(Name + " Application for Phase1 NF3").getId();
var doc = DocumentApp.openById(newFile);
var body = doc.getActiveSection();
for(var j=1; j<length; j++)
{
body.replaceText("Answer"+toText(j), data[0][j]); // line 105
}
}
ある段階では、70 を交換する以外はほとんど機能していましたが、何かを実行しても何も機能しませんでした。作り直したところ、TypeError: Cannot read property "1.0" from undefined というエラーが発生しました。(105 行目、ファイル「ConvertToDocs」)。プロパティ「1.0」が何を指しているのか、誰か教えてもらえますか? コードの最初の行がコード ウィンドウに表示されないのはなぜですか?