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