Google Apps Scriptをファイルとして新しいスプレッドシートにエクスポート/インポートする方法は?


13

これには明らかな答えがあるのではないかと心配していますが、これを頭でたたいて見つけられません!

新しいスプレッドシートを作成するとき、その中にスクリプトを簡単に作成できます。私はそれをマクロと呼ぶのが好きです。しかし、さらに新しいスプレッドシートを作成すると、マクロを取得する良い方法が見つかりません!

コピーして貼り付けて名前を変更する必要なく、ファイルを保存して自由に再利用したいだけです。ここでの私の目標は、スクリプトを共有することであり、スクリプトを使用する人はプログラマーではありません。これは本当に簡単になりました!

洞察はありますか?

回答:


9

「ライブラリソリューション」は、実際には最善の策です。見た目ほど複雑ではありませんが、1回限りの作業が必要です。

まず、1つのスプレッドシートでスクリプトを作成します(マスタースプレッドシートと呼びましょう)。

スクリプトエディターで[ ファイル ] →[バージョンの管理 ]をクリックして、スクリプトのバージョンを保存し、バージョンに名前を付けます。

バージョンの管理ダイアログのスクリーンショット

このダイアログを閉じて、ファイル→プロジェクトのプロパティに移動します。ここで、プロジェクトキーを見つけます。これは、文字のシームレスにランダムな組み合わせです。

プロジェクトプロパティダイアログのスクリーンショット

プロジェクトキーをコピーするかメモします。

新しいスプレッドシートを作成し、スクリプトを再利用したい場合は、スクリプトエディターに移動し、[ リソース ] [ ライブラリ ]をクリックします(新しいスクリプトを保存していない場合は、すぐに保存するよう求められます)。

[ ライブラリ検索]フィールドで、マスタープロジェクトからプロジェクトキーを貼り付け(1)、選択(2)をクリックします。

[ライブラリの管理]ダイアログのスクリーンショット

これにより、リストにマスタースクリプトが入力されます。よりわかりやすい名前(3)を付け、開発モード(4)をオンにします(これにより、ライブラリをデバッグできるようになります)。スクリプトの最新バージョンを選択します(5)。

これで、新しいスクリプトで含まれているライブラリの関数を使用できるようになりました。関数名に(3)で指定した名前を追加するだけで、ライブラリをとして識別し、ライブラリに呼び出したいMyLibrary関数がmyFunctionある場合、を呼び出しますMyLibrary.myFunction()

ライブラリを更新する場合は、単純に更新してファイルを保存します。ライブラリに依存するスクリプトには、更新されたライブラリコードが表示されます。

概念実証としてこの演習を試しました。

  • 関数を使用してライブラリをセットアップします。 function myFunction() {return "Foo"}
  • それを別のスクリプトに含めて、ライブラリを MyLibrary
  • ライブラリ関数を呼び出した Logger.log(MyLibrary.myFunction)
  • ログが表示されます Foo
  • ライブラリを編集しました: function myFunction() {return "Bar"}
  • インクルードスクリプトを再実行すると、ログが表示されます Bar

したがって、初期設定後は非常に簡単です。実際の例については、Googleドライブのこのフォルダーをご覧ください。

ライブラリGoogleドキュメントも参照してください。


2
私は質問で十分に明確ではなかったと思います(ライブラリの実行方法を示すリンクがあり、すべてのリンクを読んでいます。すべてのドキュメントを読んだと思います)。情報、これについてすみません。それを行うのは「それほど複雑ではない」ことを知っていますが、ここでの私の主な目標はスクリプトを共有することであり、これは私が共有する相手にとって十分に複雑です。シンプルはシンプルでなければなりません。質問を編集します。しかし、すべての考慮に感謝します!また、フォルダには何も表示されません。空のファイルは2つだけです。それらを開いた後でも。
クレゴックス14年

ああ、ライブラリを作成する方法に関する@JacobJanTuinstraの既に優れた答えへのリンクを完全に逃しました。私の悪い。ドキュメントを読んだことは間違いありません。しかし、私はあなたが分かち合うことの意味を理解しているかどうかわかりません。別のユーザーとスクリプトを共有しますか?
ヴィダールS.ラムダル14年

私のフォルダ内のファイルについては、はい、それらは空白のようです。しかし、それはスプレッドシート空白だからです-スクリプト以外には何もありません。スプレッドシートを使用するには、上のリンクをクリックし、(空白の)ファイルの1つをクリックしてから、[ 開く][ファイル]-> [コピーを作成 ]の順にクリックして、自分のGoogleドライブにコピーを作成します。また、添付のスクリプトファイルに沿ってコピーする必要があります。
ヴィダールS.ラムダル14年

コピーを作成した後、ようやくスクリプトを見ることができました。それでも簡単なことは何もありません。ええ、別のユーザーと共有します。コピー&ペーストは問題なく機能し、十分に単純ですが、あまりにも不自然です。私はまだファイルに貼り付け、他のユーザーがそこからコピーする必要があります!私たちは、ファイルを使用することはできませんなぜ私はほとんど...理解することはできません
cregox

2

短い答え

スクリプトをアドオンとして公開します。Googleグループと共有、限定公開、または非公開にすることができます。

説明

スクリプトギャラリーは、2014年に追加されたアドオンに置き換えられました。

アドオンを公開するには、Chromeウェブストアにアドオンを公開するために5ドルの料金を支払う必要があります。アドオンを公開する場合は、公開する前にGoogleで確認する必要がありますが、Googleグループに限定して公開する場合は、数分後に利用できるようになります。

アドオンを公開する代わりに、アドオンテスト機能を使用することもできますが、これにはトリガーが「テスト」できないなどのいくつかの制限があります。

ライブラリはスプレッドシートの速度を低下させる可能性があるため、アドオンを使用する方がライブラリを使用するよりも優れていますが、特にエンドユーザーの観点からは、追加を使用してスクリプトプロジェクトを追加するよりも追加して使用する方が簡単ですライブラリを呼び出してライブラリ自体を追加するために必要なコード。

アドオン作成者にとっての利点は、アドオンユーザーがアドオン自体からアドオンコードを表示できないことです。

一方、特定のユースケースでは複雑すぎると考えられる特定の形式とサイズの要件を持ついくつかの画像が必要であり、スクリプトのコピー/貼り付けを行うか、スプレッドシートのコピーを作成することを最終的に検討できます(ドキュメント/フォーム/ presentation)は、これらのユースケースの簡単なソリューションです。

参照資料


2

試してみてください が話しているGoogle Clasp

作成されたスクリプトプロジェクトがバインドされている親ファイルのドライブID

試していませんでしたが、プロジェクトスクリプトコードを取得、作成、更新するためのコマンドがあるようです:

  • プル:指定または保存されたスクリプトIDからプロジェクトを取得します。Apps Scriptプロジェクトでローカルファイルを更新します
  • プッシュ:すべてのローカルファイルをスクリプト管理サーバーに強制的に書き込みます
  • 作成:新しいスクリプトプロジェクトを作成します(オプションのプロジェクトの親ID。作成されたスクリプトプロジェクトがバインドされている親ファイルのドライブID)。

2
この貢献に感謝します、マッソン!すぐにテストすることができなくても、私はそれを非常に面白いと思います。:)いずれにしても、クラスプで質問を解決する方法を具体的に詳しく説明していただけますか?リンクが壊れたり、重要な方法で変更されたりした場合に備えて、将来の参考のために回答を自己完結させておくのは良い考えです。
クレゴックス

1

途中でプロジェクトからファイルをダウンロードします。

解決策#1

これを実現するツールを見つけました。

http://googleappsscriptexport.trototype.com/ by kerem tiryaki

  • ドライブへのアクセスを許可する必要があります
  • スクリプトを見つけるには、スクリプトのキーをコピーする必要があります。

ここに画像の説明を入力してください

不利益

GoogleAppsScriptExporterForAllがGoogleアカウントにアクセスできるようになりました(手動で削除する必要があります)

解決策2

また、このアドオンを使用してGit-HubとGoogleスプレッドシートスクリプトを統合します:https : //chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

このアドオンをインストールしたら、次のことを行う必要があります。

  1. ログインしてコードをGitHubにプッシュします(ボタンがエディターに表示されます)
  2. 必要に応じて、GitHubからコードをダウンロードします。
  3. GitHubからプロジェクトをプルすることもできます(平均的なユーザーはそれを行いません)。

不利益

ユーザーは、スクリプトエディターを開いてコードをコピーする必要があります。

長所

  1. 実装が簡単です。アドオンで遊ぶ必要はありません
  2. ユーザーは、複数のファイルではなく、1つのスクリプトを簡単にコピーできます。

次のステップ

次のステップは次のとおりです。

  1. *.jsファイルを1行のファイルにマージします。https://jscompress.com/ =)の使用に成功しました
  2. 1つのファイルをユーザーと共有する(スクリプトをGitHubに投稿するか、直接メールで送信する)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.