ExcelのHYPERLINK関数が設定されたセルから、リンク先のURL文字列をVBAを使って安全に抽出する方法とサンプルコードを紹介します。
この記事でできること
セルに=HYPERLINK("https://example.com", "リンク名")のように数式として入力されているハイパーリンクから、URLの部分(https://example.com)のみをVBAの関数で取得して他の処理に利用できます。
想定環境・前提条件
- Microsoft Excel (Windows版)
- VBAの開発タブが有効になっていること
- 対象セルに
HYPERLINK関数が数式として設定されていること
VBAサンプルコード
以下のコードを標準モジュールに貼り付けて使用します。一時的にセル(A999)を利用して数式を評価する仕組みになっています。
Sub test2()
Dim r As Range
Set r = Sheets("Sheet1").Range("A3")
' イミディエイトウインドウにURLを出力する
Debug.Print GetURL(r)
End Sub
Function GetURL(ByRef rTarget As Range) As String
Dim sStr1, sStr2, i
Dim sStr3 As String
If rTarget.Value = "" Then Exit Function
If Not rTarget.HasFormula Then Exit Function
' HYPERLINK関数の数式文字列を分解する
sStr1 = Split(rTarget.Formula, "HYPERLINK(")
If UBound(sStr1) < 1 Then Exit Function
sStr2 = Split(sStr1(1), ",")
For i = 0 To (UBound(sStr2) - 1)
sStr3 = sStr3 & sStr2(i) & ","
Next i
sStr3 = Mid(sStr3, 1, Len(sStr3) - 1)
' 一時的にセルを利用してURL文字列を評価・取得する
Range("A999").Formula = "=" & sStr3
GetURL = Range("A999").Value
Range("A999").Clear
End Function
使い方と注意点
処理の性質上、ワークシートの最終行付近(サンプルではA999)を一時的な計算領域として使用します。対象のシートに重要なデータが入力されていないか事前に確認してください。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年9月12日
- 追加この記事でできること、想定環境、および実行手順を追加しました。
- 変更VBAコードの解説とエラーハンドリングに関する説明を整備しました。

