2016-06-01 15 views
0

現在、これを使用して現在アドオンのアクティブなファイルIDを取得しています。ただし、これはドキュメントでのみ有効で、スプレッドシートやフォームでは機能しません。誰もがこれを回避する方法を知っていますか?Google AppsスクリプトでアクティブなファイルIDを取得する方法

var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId()); 
+0

次のドキュメントをお読みください:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getid and https://developers.google.com/apps-script/reference/forms/form# getid –

+0

それは私が意味するものではありません。私は3つすべてにアクセスできるように私のアドオンにしたい。特にDocumentAppをSpreadsheetAppに変更する必要はありません。私はドキュメントbtwも読んだ。 – user3204820

+0

キャッチを試してください。そうでなければうまく動作するはずです。可能であればライナー1本が好きなように思えますが、そうは思わないです。コードのほんの数行。 – Gerneio

答えて

0

これを試してみてください:

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キャッチを使用する必要があります。

-1

idの場合は、手動で取得できます。このサンプルのWebアドレスで、d//editの間で

https://docs.google.com/spreadsheets/d/samaladfajefjasdkfje/edit 

idです。

別のオプションは、他のファイルごとにコンテナが結合したスクリプトを作成し、実行し、(それが動作しない場合は、「表示>ログ」)を押し、CTRL +が入力し

function activeID() 
{ 
    Logger.log(SpreadsheetApp.getActiveSpreadsheet().getId()); 
} 

を書くことです。次に、ログに記録された値を記憶させます。

関連する問題