VBAでExcelのハイパーリンクを一括して設定する

Excelのハイパーリンクはとても便利な機能ですね。

けれど、セルに書かれているURLやファイルパスに対してハイパーリンクを設定する場合は

一つづつ手動で操作しなければならないので、

たくさん設定しなければいけないときは面倒ですし、時間もかかりますね。

そこで今回は、そんなお悩みを解決する

VBAでExcelのハイパーリンクを一括して設定する方法をご紹介します!



ハイパーリンク登録マクロとサンプルデータを用意する

ハイパーリンク登録マクロとサンプルデータを用意しましょう。

サンプルデータは2つのURLとExcelファイルとPDFファイルのパスを入力しました。

登録するマクロは以下の通りです。

Sub ハイパーリンク一括登録()
    Dim objHyperlink
    
    For Each objHyperlink In Selection
        If objHyperlink.Value <> "" Then
            ActiveSheet.Hyperlinks.Add Anchor:=objHyperlink, Address:=objHyperlink.Value
        End If
    Next

End Sub

Selectionプロパティでは、選択している範囲をオブジェクトとして取得します。
例えば、A1セルを選択していればSelectionプロパティはRange(“A1”)となり、
A1~A5のセル範囲を選択していればSelectionプロパティはRange(“A1:A5”)を指すことになります。

そのSelectionプロパティから取得したオブジェクト郡を、ForEachで一件づつ取り出し、Hyperlinks.Add メソッドでハイパーリンクを付与させます。

Hyperlinks.Add メソッドの構文は以下の通りです。

構文

Hyperlinks.Add (Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

パラメーター

名前 必須 / オプション データ型 説明
Anchor 必須 Object ハイパーリンクのアンカーを指定します。 Range オブジェクトまたは Shape オブジェクトを指定します。
Address 必須 String ハイパーリンクのアドレスを指定します。
SubAddress Optional Variant ハイパーリンクのサブアドレスを指定します。
ScreenTip Optional Variant ハイパーリンク上をマウス ポインターで指した場合に表示されるヒントを指定します。
TextToDisplay Optional Variant ハイパーリンクで表示されるテキストを指定します。

参考:https://docs.microsoft.com/ja-jp/office/vba/api/excel.hyperlinks.add

マクロを登録しましょう

①[Alt] + [F11]を押下してVBAのコンソールを開きます。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のマクロを入力します。

はい、ここで登録完了です。

マクロを実行する

続いて登録したマクロを実行し、ハイパーリンク一覧を一括オープンしたいと思います。

①ハイパーリンクにしたいセルを複数選択します。

②[開発]タブ、[マクロ]を押下してマクロ一覧画面を開きます。

③「ハイパーリンク一括登録」を選択し、「実行」をクリックします。

はい、ハイパーリンクが設定できましたね。

 

マクロをボタンから実行しましょう

次にいちいちタブからマクロを実行するのは少々面倒ですので、

登録したマクロをボタンから実行したいと思います。

①「開発」タブ>「挿入」>左上のボタンをクリックします。

②マクロを登録します。「ハイパーリンク一括登録」を選択し、「OK」をクリックします。

②はい、挿入されましたね。ボタンの名称やサイズも変えましょう。

③ハイパーリンクにしたいセルを選択し、ボタンを押してみましょう。

はい、前と同様にハイパーリンクが一括設定できましたね。

また、範囲指定でも、2番目と5番目など個別選択のパターンでも同じように開くことが可能です。
操作は「Ctrl」を押しながらセルをクリックします。

実行してみましょう。
はい、部分的にハイパーリンクを設定することができましたね。



さいごに

いかがでしょうか。

ハイパーリンク設定は現場で使う機会が多いかと思いますので、

今回の方法で効率化してみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です