2012-07-30 12 views
6

私は、スプレッドシートのコードをいくつかのスクリプトファイルで整理しようとしています。スクリプトエディタ内では、必要な数の* .gsファイルを作成できますが、別のスクリプトで定義されているコードにアクセスする方法を理解することはできません。複数の* .gsファイルでスプレッドシートコードを整理することも可能ですか?

Code.gs:

function onEdit(){ 
    myFunctionFromLibrary_gs(); 
} 

Library.gs:

function myFunctionFromLibrary_gs(){ 
    Browser.msgBox("hi there"); 
} 

のonEdit()が明らかで呼び出された私が達成んたいものの

簡単な例

引き金。修正なし これは

myFunctionFromLibrary_gs TypeError: is not a function, it is undefined.

は、どのように私はこの作業を行うことができ、またはこれは現在サポートされていないことを示す、ランタイム・エラーになりますか?

あなたの助けになる前にThx。

答えて

7

私は_gsという接尾辞がGoogleに何を意味するのか分かりませんが、コードなしでは(コードを参照してください)、コードは機能します。

file1.gs:

function onEdit(){ 
    myFunctionFromLibrary(); 
} 

file2.gs

function myFunctionFromLibrary(){ 
    Browser.msgBox("hi there"); 
} 
+0

HMは、実際に "_gsは" 単なる説明の目的のためだった、それは実際のコードではありません。 しかし、それはそれが働くべきであることを意味します、私はさらに – leostone

+0

@ user1563470を調べます。私は "_gs"接尾辞とそれなしの両方でコードを試しました。 1番目のケースでは、元の投稿と同じエラーがあります。 2番目のケースでは、すべてがエラーなく動作します。 – megabyte1024

+0

それは今働いています、私はそれが以前は混乱していなかった理由を言うことができません... BUT THANX – leostone

2

私はこれが古い質問です知っているが、私はそれが同様のタスクを探していて、私と同じ時に答えを見つけるために起こりましたサーチ。ドキュメントから https://developers.google.com/apps-script/guide_libraries#writingLibraryで:あなたの関数は、アンダースコアで終わるわけではありませんが

If you want one or more methods of your script to not be visible (nor usable) to your library users, you can end the name of the method with an underscore. For example, myPrivateMethod_().

、それだけでこれ以外の場所で特別な意味を持っていること、または_gsサフィックスも特別な意味を持っていること(特に同じを与えられましたファイル名接尾辞)。

7

はい、可能です。

  1. You are not limited to a single server Code.gs file. You can spread server code across multiple files for ease of development. All of the server files are loaded into the same global namespace, so use JavaScript classes when you want to provide safe encapsulation.

参考:Google Documentation - features and limitations

関連する問題