現在、これを使用して現在アドオンのアクティブなファイルIDを取得しています。ただし、これはドキュメントでのみ有効で、スプレッドシートやフォームでは機能しません。誰もがこれを回避する方法を知っていますか?Google AppsスクリプトでアクティブなファイルIDを取得する方法
var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId());
現在、これを使用して現在アドオンのアクティブなファイルIDを取得しています。ただし、これはドキュメントでのみ有効で、スプレッドシートやフォームでは機能しません。誰もがこれを回避する方法を知っていますか?Google AppsスクリプトでアクティブなファイルIDを取得する方法
var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId());
これを試してみてください:
var id, ss, doc, form;
ss = SpreadsheetApp.getActiveSpreadsheet();
doc = DocumentApp.getActiveDocument();
form = FormApp.getActiveForm();
if (ss != null && ss != undefined)
id = ss.getId();
else if (doc != null && doc != undefined)
id = doc.getId();
else if (form != null && form != undefined)
id = form.getId();
私はまだこれをテストする機会がなかったが、私はそれがうまくいくと信じています。アクティブなドキュメントを取得しようとしている行のいずれかにエラーがスローされた場合は、ネストされたtryキャッチを使用する必要があります。
id
の場合は、手動で取得できます。このサンプルのWebアドレスで、d/
と/edit
の間で
https://docs.google.com/spreadsheets/d/samaladfajefjasdkfje/edit
はid
です。
別のオプションは、他のファイルごとにコンテナが結合したスクリプトを作成し、実行し、(それが動作しない場合は、「表示>ログ」)を押し、CTRL +が入力し
function activeID()
{
Logger.log(SpreadsheetApp.getActiveSpreadsheet().getId());
}
を書くことです。次に、ログに記録された値を記憶させます。
次のドキュメントをお読みください:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getid and https://developers.google.com/apps-script/reference/forms/form# getid –
それは私が意味するものではありません。私は3つすべてにアクセスできるように私のアドオンにしたい。特にDocumentAppをSpreadsheetAppに変更する必要はありません。私はドキュメントbtwも読んだ。 – user3204820
キャッチを試してください。そうでなければうまく動作するはずです。可能であればライナー1本が好きなように思えますが、そうは思わないです。コードのほんの数行。 – Gerneio