###前提・実現したいこと
プログラミング超初心者です。
スプレッドシートで覚えたい英単語を一括で管理したいなと思って、そこに発音記号も取得できたら便利だと思い
「スプレッドシート 発音記号」でググって以下のサイトに辿り着きました。
https://ameblo.jp/it-books/entry-12120134002.html
ここにはそのためのソースが載っていて、それをそのまま自分のスプレッドシートのスクリプトにコピペしたところ
エラーが出たので質問させていただこうと思いました。
そのエラーが出てしまう原因と、どうすれば改善できるかを教えていただけると大変ありがたいです。
どうかよろしくお願いいたします。
###発生している問題・エラーメッセージ
A1セルに apple
B1セルに =pronounciation_list(A1)
と打ち込んだところ
B1セルに #ERROR!
と表示され、マウスをあてるとコメントで
エラー
setValue を呼び出す権限がありません(行 8)が発生しました。
と出てきました。
少し考えましたが、全く分かりませんので原因を教えて下さい。
###該当のソースコード
function pronunciation_list() {
var sheet, i, word, pron;
sheet = SpreadsheetApp.getActiveSheet();
for(i = get_lastrow(); i <= sheet.getLastRow(); i++) {//
if(sheet.getRange(i, 2).getValue() == "") {
word = sheet.getRange(i, 1).getValue();
pron = fetch_pronunciation(word);
sheet.getRange(i, 2).setValue(pron);
}
}
}
function fetch_pronunciation(word) {
var url, response, list, ms, prons, i, parts, pron;
url = "http://ejje.weblio.jp/content/";
try {
response = UrlFetchApp.fetch(url + word);
list = response.getContentText();
list = list.replace(/(.?)</span>/g, "$1");
ms = list.match(/(.?)</span>/g);
} catch(e) {
var error = e;
Logger.log("message:" + error.message + "\nfilename:" + error.filename
- "\nlineNumber:" + error.linenumber);
ms = null;
}
if(ms !== null) {
prons = [];
for(i = 0; i < ms.length; i++) {
parts = ms[i].match(/(.*?)</span>/);
prons.push(parts[1]);
}
pron = prons.join(" / ");
} else {
pron = "";
}
return pron;
}
function get_lastrow() {
var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
var values = SpreadsheetApp.getActiveSheet().getRange("B:B").getValues();
for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
Logger.log(lastRow);
return lastRow;
}
###試したこと
初心者過ぎて何も試してません。
###補足情報(言語/FW/ツール等のバージョンなど)
言語はおそらくJavascriptです。
パソコンはMacBookAir、ネットはGoogleChromeです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/02 18:10