43
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GAS】スプレッドシート内の全シートへのリンク一覧を作る

Last updated at Posted at 2017-03-03

Google スプレッドシートで仕様書なんかをまとめていると、シート数が20、30になっていたりすることがある。
こうなると目的のシートを探すのに手間がかかるので、インデックスみたいなシートを作っておきたくなる。

手作業でリンクをいちいち設定するのも面倒なので、リンク一覧を作るGASを作った。


function PutLinks()
{
  // スプレッドシート内の全シートとスプレッドシートのID
  var sheets = SpreadsheetApp.getActive().getSheets();
  var ssId = SpreadsheetApp.getActive().getId();
  
  // ハイパーリンク文字列の配列
  var linkList = [[]];
  
  for(var i=0; i<sheets.length; i++) {
    // シートのIDと名前
    var sheetId = sheets[i].getSheetId();
    var sheetName = sheets[i].getSheetName();
    
    // シートのURLからハイパーリンク文字列を組み立て
    var url = "https://docs.google.com/spreadsheets/d/" + ssId + "/edit#gid=" + sheetId;
    var link = [ '=HYPERLINK("' + url + '","' + sheetName + '")' ];
    
    // ハイパーリンク文字列を配列に格納
    linkList[i] = link;
  }
  
  // 選択中のセルにハイパーリンク文字列を入れる
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = sheet.getActiveCell();
  var range = sheet.getRange(cell.getRow() , cell.getColumn() ,  linkList.length , 1);
  range.setValues(linkList);
}

jsはあまり触ったことないので不自然な書き方をしているかもしれないが、とりあえずこれで動く。

Before
before.png

After
after.png

使い方 - How too use (2021/03/05 編集リクエスト)

正しい使い方

1.ツール>スクリプトエディタをクリック

スクリーンショット 2021-03-05 15.40.16.png
2. GASのjsのIDEが表示されるので、コードをコピペ

スクリーンショット 2021-03-05 15.42.58.png
3. ブラウザのタブを移動してリンクの配置したい列の任意の行のセルを選択状態にする
今回は、K列の3行目のセルを選択。(青くなっている部分です。)

スクリーンショット 2021-03-05 15.38.30.png
4. ブラウザのタブを移動して再度コードを表示して、実行ボタンを押下する

スクリーンショット 2021-03-05 15.44.33.png

この時に認証が出てくるので、「権限を確認」ボタンをおす。
この時に「安全でないので接続できません。」という旨のページが出てきた場合は、その画面の「詳細」>「〇〇のページへ接続する」のようなリンクが下側に小さく表示されているのでそれをクリックで続行できる。

スクリーンショット 2021-03-05 15.48.10.png
5. 実行が完了したら手順3で選択した場所に戻ると、リンクが追加されている
実行完了後に選択していたページを確認するとリンクが生成されている

スクリーンショット 2021-03-05 15.50.59.png

間違い例

関数を使うときは画像のようにセルに=関数名()と使う場合が多いですが、この関数をセルに指定して使用すると画像のようなエラーがでます。

スクリーンショット 2021-03-05 15.32.11.png

エラー文:

Exception: You do not have permission to call setValues
43
40
2

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
43
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?