12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

別のスプレッドシートのスクリプトをライブラリとして使用する方法【備忘録】

Posted at

Googleスプレッドシート「サンプルA」で作成したスクリプトを、
同じくGoogleスプレッドシート「サンプルB」で使用したい時の設定方法です。
頻繁に使わないと忘れてしまいそうだったので、備忘録を作成しました。

サンプルAの中身

例:サンプルAの[シート]に記載されている値を取得する
image.png

GAS
function getItem() {
  
  // サンプルAのデータを取得する
  const ss = SpreadsheetApp.openById('サンプルAのId');
  const sheet = ss.getSheetByName('シート');
  
  // 期待値は"★取得したい内容★" 
  let item = sheet.getRange(2,2).getValue();

  return item;

}

サンプルBで使用するための準備

サンプルAのスクリプトIDを取得する

プロジェクトの設定を開いて
image.png

この表記の下がスクリプトIDなので、これをコピーする
image.png

サンプルBでライブラリの設定をする

ライブラリを追加から
image.png

さっきコピーしたIDを貼り付けて「検索」
image.png

IDを設定して「追加」(好きな良い感じのIDでOK)
image.png

IDを設定しないで「追加」するとエラーになります

image.png

しかも厄介なことに、その後IDを設定して「追加」してもまたエラーになります

その時は、またプロジェクトの設定を開いて
”「appsscript.json」マニフェスト ファイルをエディタで表示する”を有効にします
image.png

さっきの残骸はここにいるので、不要なデータを削除します
image.png

この場合だと、これが不要なので削除して保存

{
    "userSymbol": "",
    "version": "0",
    "libraryId": "*****",
    "developmentMode": true
},

設定したIDがライブラリに表示されました
image.png

サンプルBの中身

GAS
function myFunction() {

  const ss = SpreadsheetApp.openById('サンプルBのId');
  const sheet = ss.getSheetByName('表示するシート');

  // ライブラリを呼び出し
  let item = test.getItem();

  sheet.getRange(5,5).setValue(item);
  
}

実行結果
image.png

さいごに

とても便利だったので、備忘録としておきました。

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?