• ベストアンサー

エクセルでハイパーリンク

=HYPERLINK("A1","A2")という関数を入力したセルを、 書式メニューでハイパーリンク設定したものと同じに 変換するにはどうすればよいですか? (A1にはURL、A2にはサイト名が入っています。) 他のブックなどに移動したとき関数のままではA1,A2のセルも一緒に移動しなければいけないので面倒です。 ちなみに関数を設定したものがたくさんあって1個づつ書式メニューで設定している時間がないという状況です。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 VBA で一括変換を行っています。標準モジュールに貼り付けて、処理対象の セルを選択してから実行して下さい。 Option Explicit Sub ConvertHyperlink()   Dim C      As Range   Dim rngTarget  As Range   Dim strArg   As String   Dim vntArg   As Variant   Dim strAddress As String   Dim strDisplay As String      If UCase$(TypeName(Selection)) <> "RANGE" Then Exit Sub      On Error Resume Next   Set rngTarget = Selection.SpecialCells(xlCellTypeFormulas, 23)   On Error GoTo 0   If rngTarget Is Nothing Then     Exit Sub   Else     For Each C In rngTarget       If InStr(C.Formula, "HYPERLINK") > 0 Then         ' 引数を表す文字列を取得         strArg = Mid$(C.Formula, InStr(C.Formula, "(") + 1)         strArg = Mid$(strArg, 1, Len(strArg) - 1)         vntArg = Split(strArg, ",")         C.ClearContents         strAddress = Evaluate(vntArg(0))         strDisplay = Evaluate(vntArg(1))         Selection.Parent.Hyperlinks.Add _           Anchor:=C, _           Address:=strAddress, _           TextToDisplay:=strDisplay       End If     Next C   End If End Sub

関連するQ&A