GoogleAppsScriptでセルの値に基づいてハイパーリンクを設定する

Google スプレッドシートで「この文字をクリックしたら特定のWebページに飛んでほしい」と思ったことはありませんか?

それを自動でやってくれるのが、Google Apps Script(GAS)の力です。

たとえば、あるセルに「Google」と入力されていたら、自動で「Google」へのリンクを貼る。

そんな便利な処理も、GASを使えば一発で実現できます!

この記事では、「セルの値をもとにハイパーリンクを設定する」方法を、コード付きでやさしく解説します。


✅ まず、どういうときに使えるの?

以下のような場面で役立ちます:

  • A列に会社名を入力したら、自動でその会社の公式サイトへリンクを貼る
  • 商品名を選ぶと、その商品ページへのリンクがつく
  • 検索キーワードを元にGoogle検索リンクを作る

人の手で毎回リンクを貼るのは大変ですが、GASなら一度コードを書けば自動化できます。


🧩 ハイパーリンク設定の基本の考え方

以下の4ステップで実現できます:

  1. スプレッドシートを取得する
  2. 操作したいシートを取得する
  3. 対象のセルを取得する
  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();
  }
}

🖥️ このコードの動き(実行イメージ)

  1. B2セルに「Google」と入力して、addHyperlinkToCell()を実行すると、

    👉「Google」という表示のまま https://www.google.com へ飛べるリンクに変わります。

  2. B2セルに「Yahoo」と入力して実行すると、

    👉「Yahoo」というリンクに変わります(リンク先は https://www.yahoo.co.jp)。

  3. それ以外の文字(例:「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()でセルに数式を入れるのがコツ
  • 条件に応じた処理も iffor を使ってカスタマイズ可能

👨‍🏫 最後に:プロンプトエンジニアからのアドバイス

関数 vs 値の違いに注意!

setValue()setFormula() は用途が違います。

  • setValue("Google") → ただの文字列を入れる
  • setFormula('=HYPERLINK(...)') → 実際にリンクが機能する
デバッグのポイント

Logger.log() などを活用して、現在のセルの値やURLを確認すると、間違いを見つけやすくなります。


この記事をベースに、自分なりのリンク付きスプレッドシートを作ってみてくださいね!


GoogleAppsScriptをAIのチカラを使ってブーストさせるための情報が体系的にまとまっていました。GASのレベルをあげたい人は、下記のKindle書籍をチェックしてみてください。AI時代の効率的なプログラミング方法が学べます。Kindle Unlimitedに入っている人は無料で読めますよ。

https://www.amazon.co.jp/dp/B0FPFSVSJP


メンバーのSNSアカウントはこちら

◆かいと:IT担当
X(旧Twitter)
Instagram