スプレッドシートのリンクまわりは、やりたいことが逆方向の2つに分かれます。
先に結論をまとめます。
| やりたいこと | 方法 |
|---|---|
| 文字にリンクを貼る | =HYPERLINK("URL","表示する文字") |
| 1つのセルにさっと貼る | Ctrl+K |
| URLを一括でリンクにする | HYPERLINK関数を下までコピー |
| リンクからURLを取り出す | 関数では取れない。GASで自作の関数を作る |
文字にリンクを貼る
関数を使う方法がいちばん扱いやすいです。
=HYPERLINK("https://example.com", "サンプルサイト")1つ目にURL、2つ目に表示したい文字を書きます。
2つ目を省くと、URLがそのまま表示されます。
別の列のURLをまとめてリンクにする
A列にURL、B列に表示したい文字が入っている場合はこうします。
=HYPERLINK(A2, B2)あとは下までコピーすれば、行数分のリンクが一気にできます。
1行ずつ手で貼る必要はありません。
ショートカットで貼る
1つのセルに手早く入れるだけなら、関数を使わない方法もあります。
- 文字を入力したセルを選ぶ
Ctrl+K(Macは⌘+K)を押す- URLを貼って適用する
こちらはセルの装飾としてリンクが付く形です。
関数と違って中身が数式にならないので、並べ替えても崩れません。
リンクからURLを取り出す
ここが逆方向です。
「〇〇のページ」という文字にリンクが貼られていて、そのURLだけを別の列に取り出したいという場面です。
これを取り出す関数は用意されていません。
セルをコピーしても、貼り付くのは表示されている文字だけです。
URLはセルの装飾として持たれているので、通常の数式からは見えません。
そこでGASで自作の関数を作り、シートから呼び出せるようにします。
ハイパーリンクからURLを抽出する手順
やり方は抽出するための専用関数を作るだけです。
STEP1:A列にリンク付きテキストを用意する
まずは、ハイパーリンク付きのテキストをA列に貼り付けてください。
例えば、ブログ記事タイトルやサービス名など、テキストにリンクが設定されているものをコピペするだけでOKです。

STEP2:GASで関数を作成する
次に、スプレッドシートのメニューから拡張機能 > Apps Script を開き、以下のコードを貼り付けて保存します。
function getHyperlinks(rangeA1Notation) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getRange(rangeA1Notation);
const values = range.getRichTextValues();
const result = [];
for (let i = 0; i < values.length; i++) {
const row = [];
for (let j = 0; j < values[i].length; j++) {
row.push(values[i][j].getLinkUrl());
}
result.push(row);
}
return result;
}
この関数は、指定した範囲のハイパーリンクをすべて抽出してくれる自作関数です。

STEP3:スプレッドシートで関数を使う
スプレッドシートに戻って、たとえば B1セル に以下の数式を入力してみてください。
=getHyperlinks("A1:A4")「A1:A4」の部分は、実際にリンク付きテキストが入っているセル範囲に合わせて調整しましょう。
入力後、B列に各セルのリンク先URLが表示されるようになります。

Googleスプレッドシートのほかの操作は、まとめからご覧いただけます。

まとめ
- 文字にリンクを貼るなら
=HYPERLINK("URL","文字") - 別の列を参照して下までコピーすれば一括でリンク化できる
- 1セルだけなら
Ctrl+Kが早い - リンクからURLを取り出す関数はない。GASで自作の関数を作る

