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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

6315閲覧

GAS 特定のセルへのリンクを自動生成したい

Konayukin

総合スコア3

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/07/11 08:56

スプレッドシートにおいてGASを使って特定のセルへのリンクを自動生成できるようにしたいです。

具体的には、セルを右クリックすると「このセルへのリンクを取得」といった項目がありますがそれによって得られるURLと同じものをスクリプト内で作成する方法が知りたいです。
探しても探してもリンク内のURLを取得する方法などしか見つからず肝心のセルへのリンクの取得方法が見つかりませんでした。

疑似的にURLの文字列をいじることで任意のセルのURLを作成するようには作れたのですが、とても使い勝手が悪いうえにそもそも絶対用意されたメソッドがある気がするのでご存じの方が居ましたら教えて頂けるとありがたいです。

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

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

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

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

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

sawa

2021/07/12 00:31

>そもそも絶対用意されたメソッドがある気がする GASは、これないのかぃ!っての結構多いですよ。たまにAPI側であったりしますが。 macaron_xxx さんの回答の方法でやるのが一番だと思います。
Konayukin

2021/07/12 02:11

自分でもしばらく調べていたのですが見当たらないのでやはり無いのですかね 何となくあるじゃろと思っていたんですが高望みだったかもしれません... 一応もう少し探ってみたいと思います。返答ありがとうございます。
guest

回答1

0

ベストアンサー

少し探してみましたが、ないようですね。

とても使い勝手が悪い

どのように作られているか存じませんが、基本的にURLは
https://docs.google.com/spreadsheets/d/`SpreadSheetID`/edit#gid=`SheetID`&range=`Range`
となるので関数を作れば、そんなに使い勝手が悪いものではないと思うのですが…。

js

1function getRangeUrlByRange(range) { 2 const sheet = range.getSheet(); 3 return getRangeUrlBySheetRange(sheet, range); 4} 5function getRangeUrlBySheetRange(sheet, range) { 6 const spreadSheet = sheet.getParent(); 7 return getRangeUrl(spreadSheet, sheet, range); 8} 9function getRangeUrl(spreadSheet, sheet, range) { 10 const ssId = spreadSheet.getId(); 11 const sheetId = sheet.getSheetId(); 12 const rangeA1 = range.getA1Notation(); 13 14 return `https://docs.google.com/spreadsheets/d/${ssId}/edit#gid=${sheetId}&range=${rangeA1}`; 15}

投稿2021/07/12 00:22

macaron_xxx

総合スコア3191

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

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

Konayukin

2021/07/12 02:08

回答ありがとうございます。 やり方的には頂いたものとほぼ同じようなものを作ってはいたのですが「どうせ一行で済む何かがあるんやろな~」の前提で作り始めてしまったため面倒だなと感じた次第です。使い勝手が悪いは言い過ぎでした…;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問