【Excel VBA】Excelの複数のハイパーリンクを一括でオープンする方法

Excelワークシートに記入されている複数のハイパーリンクを一括でオープンする機会はないでしょうか。

例えば、社員分の勤怠をSalesforceなどのハイパーリンクから確認する時などです。

そんな時に悩むことは、

・ハイパーリンクを一つ一つ開くのは面倒なので、一括で開ける方法が知りたい
・VBAでハイパーリンクを一括オープンしたいが方法がわからない

ですよね。

そんなときに便利なのはハイパーリンクを一発で開くマクロです。

何件ハイパーリンクがあろうが、一回の操作でハイパーリンクを一括で開くことが可能です。

タカヒロ
タカヒロ
最大255個まで開くことができます。

今回はそんなハイパーリンクを一発で開くVBAをご紹介します。

ハイパーリンクオープンマクロとサンプルを用意する

今回はExcelへ以下のマクロの登録と

シートへ5つのハイパーリンクを記入し、そのハイパーリンクをマクロで開いてみます。

サンプルのハイパーリンクはこのように用意しました。

ハイパーリンクを一括で開くVBA

ハイパーリンクを一括で開くVBAは以下の通りです。

Sub ハイパーリンク一括オープン()
    Dim objHyperlink As Hyperlink
    
    For Each objHyperlink In Selection.Hyperlinks
    
        objHyperlink.Follow
    
    Next

End Sub

ハイパーリンクを一括で開くVBAの説明

ハイパーリンクを一括で開くVBAについて説明をします。

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

Selectionプロパティから取得したオブジェクトは複数個のハイパーリンクとなるため、ForEachで一件づつハイパーリンクを取り出し、Hyperlink オブジェクトとし、follow メソッドでハイパーリンクを実行させます。

follow メソッドの構文は以下の通りです。

構文

follow (NewWindow、 addhistory、 ExtraInfo、 Method、 HeaderInfo)

パラメーター

NewWindow 省略可。リンク先を新しいウインドウで表示する場合はTrue、そうでない場合や省略した場合はFalseを指定します。
AddHistory 省略可。使用されません。
ExtraInfo 省略可。GETメソッドやPOSTメソッドの情報を指定します。GETメソッドの場合はURLの?に続く追加パラメータを指定します。?の記述は不要です。POSTメソッドの場合も同様に追加パラメータを指定します。
Method 省略可。MsoExtraInfoMethod列挙型の定数で、引数ExtraInfoの接続方法を指定します。

定数 内容
msoMethodGet ExtraInfoの内容はアドレスに追加される文字列とする。(GETメソッド)
msoMethodpost ExtraInfoの内容は文字列またはバイト配列として保存する。(POSTメソッド)
HeaderInfo 省略可。接続に使用するユーザー名やパスワードなどのHTTP要求ヘッダ情報を文字列で指定します。省略時は空文字列になります。

VBAを実装する

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

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

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

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

VBAを実行する

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

①ハイパーリンクを複数選択します。

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

③「ハイパーリンク一括オープン」を選択し、「実行」をクリックしマクロを実行します。

はい、一括でオープンできましたね。

 

VBAを実行するボタンを実装する

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

登録したマクロをボタンから実行する設定をしていきましょう。

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

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

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

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

はい、前回と同様に一括でオープンできましたね。

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

実行してみましょう。
はい、個別選択分の表示がされましたね。

HYPERLINK関数で設定したハイパーリンクは開けない

2020年8月16日追記。

HYPERLINK関数で設定したハイパーリンクは、本マクロでは開くことができないことがわかりましたので、追記致します。

HYPERLINK関数とは、以下の式で指定すると、ハイパーリンクが張られ、Webページやリンク先のファイルを開くことができます。

HYPERLINK(リンク先, 別名)

リンク先 リンク先を表す文字列を指定します。
別名 セルに表示される文字列を指定します。

原因は、関数で設置したハイパーリンクの値をマクロで読み取ったときにハイパーリンクと認識されないためです。

対応としては手動でハイパーリンクを設定いただくしかありません。

手動登録は大変ですので、マクロでハイパーリンクを一括登録する方法もよいでしょう。

やり方はこちらをご参照ください。

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

さいごに

いかがでしょうか。

今回は
ハイパーリンクを一発で開くVBA
についてご紹介をしました。

もし複数個あって定期的にオープンする作業があるようでしたら、
今回の方法をぜひ試してもらえばと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

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