質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

7725閲覧

スプレッドシートで、共通のGASファイルを読み込みたい

gas_taro

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/09/06 00:57

初心者的質問で申し訳ございません。

マイドライブの直下に、AとBといつディレクトリを作成して
それぞれの直下に、A1とB1のスプレッドシートを作成してます。
共通の動きをするGASを動かすために、マイドライブ直下に共通処理のgsファイルを
読み込めたらとおもっておりますが、
そのようなことは出来るのでしょうか


マイドライブ直下
マイドライブ 共通処理.gs A A1 (スプレッドシート) B B1(スプレッドシート)

コード

現在、コードはありません。
調べても出てこないので、確認の質問です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そのようなことは出来るのでしょうか

できます。

スプレッドシートとは独立した「スタンドアロンスクリプト」に共通処理を書き、それぞれのスプレッドシートに紐付いた「コンテナバインドスクリプト」にそれをライブラリ登録すれば、「コンテナバインドスクリプト」から共通処理を呼び出せます。

スタンドアロンスクリプトの作成

  1. マイドライブのページで、「新規」→「その他」→「Google Apps Script」を選択して、スタンドアロンスクリプトを作成します。
  2. スクリプトエディターの最上部に書かれたプロジェクト名「無題のプロジェクト」を、英数字を使用した名前に変更してください。後でライブラリのIDを指定するときに面倒なので。
  3. スクリプトエディターに共通処理で使用する関数などを書きます。このとき、スタンドアロンスクリプトでは(想定通りに動作しないため通常は)使わない、getActiveSheetなどのメソッドも、コンテナバインドスクリプトと同様に使うことができます。
  4. 左端の歯車アイコンを押して、プロジェクトの設定画面に切り替え、下のほうにある「スクリプトID」の文字列を「コピー」をクリックしてコピーしてください。

各スプレッドシートとコンテナバインドスクリプトの作成

  1. マイドライブのページでフォルダーをAまたはBに切り替え、スプレッドシートA1またはB1をクリックします。まだスプレッドシートを作成していないのであれば、「新規」→「Googleスプレッドシート」で作成します。
  2. それぞれのスプレッドシートのページで、「ツール」→「スクリプトエディタ」を選択し、コンテナバインドスクリプトを作成(あるいは既存の内容を表示)します。こちらのプロジェクト名は何でも構いません。
  3. 左のリスト「ライブラリ」の+マークをクリックして、「ライブラリの追加」ダイアログを開きます。
  4. 「スクリプトID」の入力欄に、「スタンドアロンスクリプトの作成」の4.でコピーした内容を貼り付けます。
  5. 「検索」ボタンを押すと、(スクリプトIDが正しければ)スタンドアロンスクリプトのプロジェクトが検索され、一番下の「ID」にそのプロジェクト名が表示されます。
  6. 「追加」ボタンを押すと、スクリプトエディターのページ左のリスト「ライブラリ」の下に、スタンドアロンスクリプトのプロジェクト名が表示されます。

コンテナバインドスクリプトのコード記述と実行

  1. それぞれのコンテナバインドスクリプトにコードを書きます。スタンドアロンスクリプトの関数を呼び出すには、**プロジェクト名.関数名()**と書きます。たとえば、MyCommon.myFunction()のように。
  2. コンテナバインドスクリプトを保存し、「実行」ボタンを押して実行します。最初の一回だけ、いつものように「権限を承認」ボタンを押して、アカウントを選択し、アクセスを許可する作業が必要です。スタンドアロンスクリプトについては何も聞かれません。
  3. それぞれのスプレッドシートを見て、共通処理に基づく結果になっているか確認してください。

投稿2021/09/06 03:55

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gas_taro

2021/09/06 07:37

ご回答ありがとうございます。 「スタンドアロンスクリプト」と「コンテナバインドスクリプト」という 名前があることを知れて、新たな知識が増えたこと感謝いたします。 また作業を進めていくうえで、下記エラーが発生しました。 これはどのように解決すればいいのでしょうか。 発生段階 「追加」ボタンを押すと、スクリプトエディターのページ左のリスト「ライブラリ」の下に、スタンドアロンスクリプトのプロジェクト名が表示されます。 エラー内容 「appsscript.json」のエラー: サービス ID は空にできません お手数をおかけしますが、ご回答宜しくお願い致します。
Daregada

2021/09/06 08:19

> スクリプトエディターの最上部に書かれたプロジェクト名「無題のプロジェクト」を、英数字を使用した名前に変更してください。後でライブラリのIDを指定するときに面倒なので。
gas_taro

2021/09/06 09:03

ご回答ありがとうございます。 事前に用意したものではなく、違うものを使用しておりました。 申し訳ございません。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問