右クリックはもう不要!Excelのハイパーリンク操作(抽出・削除・設定)をマクロで自動化するテクニック

【業務効率化】VBA
スポンサーリンク

Excelのハイパーリンク、一つひとつ右クリックして「ハイパーリンクの編集」を開いてURLを確認していませんか? 

その作業、今日で終わりにしましょう。

今回は、VBAで「大量のハイパーリンクを一括で操作(URL抽出・削除・追加)する方法」を紹介します。

【業務効率化】VBAの記事を見る


1. リンク先(URL)を隣のセルに取り出す

これが一番使いどころの多い機能です。

青文字のリンクから、URLの文字列だけを抜き出します。

以下のコードをVBAの標準モジュールにコピペしてください。

Sub URLを抽出する()
    ' 選択したセルの右隣にURLを表示します
    Dim rng As Range
   
    ' エラーが起きても止まらないようにする(リンクがない場合など)
    On Error Resume Next
   
    For Each rng In Selection
        ' ハイパーリンクが設定されている場合のみ処理
        If rng.Hyperlinks.Count > 0 Then
            ' AddressプロパティでURLを取得
            rng.Offset(0, 1).Value = rng.Hyperlinks(1).Address
        End If
    Next rng
   
    On Error GoTo 0
    MsgBox "抽出完了しました!", vbInformation
End Sub

使い方: URLを抜き出したいセル範囲を選択して、このマクロを実行するだけです。

Hyperlinks(1).Address で指定したハイパーリンクのアドレスを取得できます。

2. ハイパーリンクを一括で削除する

次は「セルをクリックしようとしたら、勝手にブラウザが開いてイライラする!」という時に使えるコードを紹介します。

Sub ハイパーリンクを全削除()
    ' 選択範囲のリンクを解除します(文字は残ります)
    Selection.Hyperlinks.Delete
   
    MsgBox "リンクを削除しました。", vbInformation
End Sub

ポイント: Delete メソッドを使うことで、リンク機能だけを綺麗サッパリ消し去ります。書式設定(青文字・下線)が残る場合は、別途「書式のクリア」をすれば完璧です。

3. 文字列にハイパーリンクを一括追加する

逆に、URLの文字列が大量にあって、それをすべて「クリックできる状態」にしたい場合もありますよね。

Sub リンクを一括設定()
    Dim rng As Range
   
    For Each rng In Selection
        ' セルの値を使ってハイパーリンクを設定
        If rng.Value <> "" Then
            ActiveSheet.Hyperlinks.Add _
                Anchor:=rng, _
                Address:=rng.Value
        End If
    Next rng
   
    MsgBox "すべてリンク付きに変換しました", vbInformation
End Sub

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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