Google スプレッドシートで「この文字をクリックしたら特定のWebページに飛んでほしい」と思ったことはありませんか?
それを自動でやってくれるのが、Google Apps Script(GAS)の力です。
たとえば、あるセルに「Google」と入力されていたら、自動で「Google」へのリンクを貼る。
そんな便利な処理も、GASを使えば一発で実現できます!
この記事では、「セルの値をもとにハイパーリンクを設定する」方法を、コード付きでやさしく解説します。
✅ まず、どういうときに使えるの?
以下のような場面で役立ちます:
- A列に会社名を入力したら、自動でその会社の公式サイトへリンクを貼る
- 商品名を選ぶと、その商品ページへのリンクがつく
- 検索キーワードを元にGoogle検索リンクを作る
人の手で毎回リンクを貼るのは大変ですが、GASなら一度コードを書けば自動化できます。
🧩 ハイパーリンク設定の基本の考え方
以下の4ステップで実現できます:
- スプレッドシートを取得する
- 操作したいシートを取得する
- 対象のセルを取得する
-
=HYPERLINK()関数をセルに設定する
この中でポイントは、「ハイパーリンクは関数(=HYPERLINK())としてセットする」ということ。
手動で入力する代わりに、スクリプトでその式をセルに設定します。
✏️ サンプルコード:条件に応じてリンクを貼る
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
function addHyperlinkToCell() {
// スプレッドシートを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// 対象のシートを取得
var sheet = spreadsheet.getSheetByName("Sheet1");
// B2セル(2行2列)を取得
var cell = sheet.getRange(2, 2); // B2セル
// セルの内容に応じてリンクを貼る
if (cell.getValue() === "Google") {
cell.setFormula('=HYPERLINK("https://www.google.com", "Google")');
} else if (cell.getValue() === "Yahoo") {
cell.setFormula('=HYPERLINK("https://www.yahoo.co.jp", "Yahoo")');
} else {
// 条件に合わなければ内容を消去
cell.clearContent();
}
} 🖥️ このコードの動き(実行イメージ)
- B2セルに「Google」と入力して、
addHyperlinkToCell()を実行すると、👉「Google」という表示のまま
https://www.google.comへ飛べるリンクに変わります。 - B2セルに「Yahoo」と入力して実行すると、
👉「Yahoo」というリンクに変わります(リンク先は https://www.yahoo.co.jp)。
- それ以外の文字(例:「Bing」)を入れて実行すると、
👉 B2セルは空になります(リンクも削除されます)。
💡 初心者にありがちな疑問
Q1. 文字列だけでリンクはつけられないの?
A. スプレッドシートでは「=HYPERLINK()」のような関数として指定する必要があります。
Apps Script ではこの関数を setFormula() でセルに書き込むイメージです。
Q2. 他のセルにも一気に設定できますか?
A. もちろんできます。以下のようにすれば、A列にある文字列をもとに、B列にリンクをつけられます。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
function addLinksToColumn() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var lastRow = sheet.getLastRow();
for (let row = 2; row <= lastRow; row++) {
let keyword = sheet.getRange(row, 1).getValue(); // A列の値
let cell = sheet.getRange(row, 2); // B列のセル
if (keyword === "Google") {
cell.setFormula('=HYPERLINK("https://www.google.com", "Google")');
} else if (keyword === "Yahoo") {
cell.setFormula('=HYPERLINK("https://www.yahoo.co.jp", "Yahoo")');
} else {
cell.clearContent();
}
}
} 🪄 裏ワザ:Google検索リンクを自動で作る
任意のキーワードで Google 検索リンクをつけたいなら、こんなコードも便利です:
- 1
- 2
- 3
- 4
- 5
- 6
function addSearchLink() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var keyword = sheet.getRange(2, 1).getValue(); // A2セルのキーワード
var link = 'https://www.google.com/search?q=' + encodeURIComponent(keyword);
sheet.getRange(2, 2).setFormula('=HYPERLINK("' + link + '", "検索する")');
} 📘 まとめ:ハイパーリンク設定でスプレッドシートが便利に!
今回の内容をまとめると:
- セルの値をもとにリンクをつけたいなら
=HYPERLINK()関数をスクリプトで設定する -
setFormula()でセルに数式を入れるのがコツ - 条件に応じた処理も
ifやforを使ってカスタマイズ可能
👨🏫 最後に:プロンプトエンジニアからのアドバイス
関数 vs 値の違いに注意!
setValue()とsetFormula()は用途が違います。
setValue("Google")→ ただの文字列を入れるsetFormula('=HYPERLINK(...)')→ 実際にリンクが機能する
デバッグのポイント
Logger.log()などを活用して、現在のセルの値やURLを確認すると、間違いを見つけやすくなります。
この記事をベースに、自分なりのリンク付きスプレッドシートを作ってみてくださいね!
GoogleAppsScriptをAIのチカラを使ってブーストさせるための情報が体系的にまとまっていました。GASのレベルをあげたい人は、下記のKindle書籍をチェックしてみてください。AI時代の効率的なプログラミング方法が学べます。Kindle Unlimitedに入っている人は無料で読めますよ。
https://www.amazon.co.jp/dp/B0FPFSVSJP