HYPERLINK関数からURL抜き出し

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

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コードの解説とエラーハンドリングに関する説明を整備しました。

文書情報

記事タイトル
HYPERLINK関数からURL抜き出し
作成日
更新日
Source URL
https://papanda925.com/?p=961

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました