重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel365で、一括でハイパーリンクを付ける方法を教えてください。

■状況
1000個くらいのセルに、例えば「http://www.yahoo.co.jp」のようなURLが入っています。
そのセルは、ハイパーリンクが設定されていません。
セルをダブルクリックすると、自動でハイパーリンクが設定されますが、それを1000個のセルに作業するのは大変です。
URLは非常に長く、そのせいか、HYPERLINK関数だと以下のエラーがでます。
 「xxxxを開くことができません。インターネットサーバーまたはプロキシサーバーが見つかりませんでした。」

A 回答 (1件)

VBAでの回答です。

VBAって何?でしたら
エクセルマクロVBAの標準モジュールを解説|名前変更/削除/呼び出し/実行/コピー/複数作成/表示など
https://www.fastclassinfo.com/entry/vba_hyojun_m …
などで勉強なさってください。

標準モジュールに
Sub SetLink()
Dim Lnk As Hyperlink
Dim R As Range, WS As Worksheet
On Error GoTo errH

Set WS = ActiveSheet
For Each R In Selection
If R <> "" Then
WS.Hyperlinks.Add WS.Range(R.Address), R.Value
End If
Next

errH:
If Err.Number <> 0 Then
MsgBox "失敗しました" & Err.Number & "_" & Err.Description
End If
Set WS = Nothing
End Sub
とします。
ワークシートのハイパーリンクに変更したいセルを選択してから上記実行モジュールを走らせてください。

おまけにハイパーリンクの削除も載せておきます。
Sub DelLink()
Dim Lnk As Hyperlink
Dim R As Range, WS As Worksheet
On Error GoTo errH

Set WS = ActiveSheet
For Each R In Selection
WS.Hyperlinks.Delete
Next

errH:
If Err.Number <> 0 Then
MsgBox "失敗しました" & Err.Number & "_" & Err.Description
End If
Set WS = Nothing
End Sub

なお、文字列長に関してですが、Google で「寿限無、寿限無、五劫の擦り切れ」を
検索した時のアドレス、586文字(当方環境では)で問題ありませんでした。
    • good
    • 0
この回答へのお礼

ありがとうございます。
SetLinkもDelLinkも動作しました。
わざわざコード書いてくださってありがとうございます。

お礼日時:2021/04/02 12:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!