実現したいこと
スプレッドシート内にあるハイパーリンク先のスプレッドシートに画像を挿入する
発生している問題・分からないこと
TypeError: Cannot read properties of undefined (reading 'insertImage')
at myfunction(コード:27:14)というエラーが出ています。
当方、プログラミング経験0の初心者です。
現在、ほかの方が書かれたコードをコピーし、一つ一つ理解しながら適宜コードを変更し、プログラムを書いています。
どうしても解決できない問題がありましたので、質問させていただきます。
エラーメッセージ
error
1Exception: The blob format is unsupported. 2 at myfunction(コード:24:9)
該当のソースコード
function myfunction(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getActiveSheet(); if(sh.getName()!='シート1'){ } var myCell = sh.getActiveCell(); if( typeof myCell === undefined ){ } else{ SpreadsheetApp.flush() if(myCell.getColumn() == 2 && myCell.getValue()!==""){ } } var richText = sh.getRange(myCell.getRow(),1).getRichTextValue(); var linkUrl = richText.getLinkUrl(); SpreadsheetApp.flush() if (linkUrl) { var spreadsheetId = extractSpreadsheetId(linkUrl); var shs = DriveApp.getFileById(spreadsheetId); var shss = SpreadsheetApp.openById(spreadsheetId); var imgBlob = DriveApp.getFileById("1NLNC9QlxCkzV3AU4RKyid4NiKk63khIa").getBlob(); var imagesh = SpreadsheetApp.openById(spreadsheetId); shss.imagesh.insertImage(imgBlob,23,15) .setHeight(65) .setWidth(65) } else { myCell.setValue(""); } } // スプレッドシートのIDをURLから抽出する関数 function extractSpreadsheetId(url) { var match = url.match(/spreadsheets\/d\/([a-zA-Z0-9-_]+)/); if (match) { return match[1]; } return null; }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
同じようなエラーがあっているものをGoogle等で検索しましたがよくわからず解決できておりません。
補足
function myfunction(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
if(sh.getName()!='シート1'){
}
var myCell = sh.getActiveCell();
if( typeof myCell === undefined ){
}
else{
SpreadsheetApp.flush()
if(myCell.getColumn() == 2 && myCell.getValue()!==""){
}
}
var richText = sh.getRange(myCell.getRow(),1).getRichTextValue();
var linkUrl = richText.getLinkUrl();
SpreadsheetApp.flush()
if (linkUrl) {
var spreadsheetId = extractSpreadsheetId(linkUrl);
var shs = DriveApp.getFileById(spreadsheetId);
var shss = SpreadsheetApp.openById(spreadsheetId);
var imgBlob = DriveApp.getFileById("1NLNC9QlxCkzV3AU4RKyid4NiKk63khIa").getBlob();
var imagesh = SpreadsheetApp.openById(spreadsheetId);
shss.insertImage(imgBlob,23,15)
.setHeight(65)
.setWidth(65)
} else {
myCell.setValue("");
}
}
// スプレッドシートのIDをURLから抽出する関数
function extractSpreadsheetId(url) {
var match = url.match(/spreadsheets/d/([a-zA-Z0-9-_]+)/);
if (match) {
return match[1];
}
return null;
}
変更後解決しました。
回答1件
あなたの回答
tips
プレビュー