2016-09-27 17 views
0

GoogleドキュメントのonOpen機能で、スプレッドシートをIDで開いてスプレッドシートオブジェクトを作成する場合、メニューシステムを使用している場合、そのオブジェクトを他の関数に渡すにはどうすればよいですか?Googleスクリプトドキュメントのopenbyid権限エラー

私は特定の時間に文書のスナップショットをとり、それを.docxにエクスポートし、スプレッドシートのURLでスプレッドシートを更新するgoogle docスクリプトを持っています。これは、そのようにメニューオプションによって開始されていますから、関数のスナップショット()

function snapshot() { 
//open the spreadsheet using id 
var ss=SpreadsheetApp.openById('spreadsheet_id'); 

は、これは私が(Googleのスクリプトがopenbyid禁止していることを理解し

you do not have permission to call openbyid()エラーを生成)を呼び出し

function onOpen(e) { 
DocumentApp.getUi().createMenu('Senate Secretary Menu') 
    .addItem('Snapshot', 'snapshot') 
    .addToUi(); 
} 

カスタム関数(これはスプレッドシートの関数として解釈されますが、whatevs)で呼び出されます。 OpenById()呼び出しを含むようにonOpen関数を変更すると、それは動作します。

function onOpen(e) { 
DocumentApp.getUi().createMenu('Senate Secretary Menu') 
    .addItem('Snapshot', 'snapshot') 
    .addToUi(); 
var ss=SpreadsheetApp.openById('spreadsheet_id'); 
} 

私の質問は、ファイルオブジェクトをonOpen関数からスナップショット関数に渡す方法です。

+0

実際のスプレッドシートID(文字列と数字の長いシーケンス)または文字列「spreadsheet_id」を使用していますか? – Brady

+0

実際は長い文字列です。しかし、私は以下のエラーが見つかりました。 – rwreed

答えて

0

この問題が発生している可能性のある人は、私はGoogleクイックスタートからメニューテンプレートを取り出しましたが、私が見逃したヘッダーコメントブロックには@OnlyCurrentDocフラグがあります。それを取り出して、私の問題は解決されました。

関連する問題