VBA ハイパーリンク

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 19, 2022

このVBAチュートリアルでは、VBAでハイパーリンクを操作するさまざまな方法について説明します。

VBAのハイパーリンク

VBAでは、ハイパーリンクの追加、ハイパーリンクの削除、ハイパーリンクを使ったメールの作成、ハイパーリンクを使ったファイルのオープンを行うことができます。

VBAでハイパーリンクを追加する

Hyperlinks.Addメソッドは、VBAを使用してセルにハイパーリンクを追加するメソッドです。 次のコードは、セル A1 にハイパーリンクを追加します。

Sub AddHyperlinkToCell()
  ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/"
End Sub

結果は以下のようになります。

Add a Hyperlink to a Cell with VBA ハイパーリンク

VBAで表示するテキストを追加する

VBAでハイパーリンクにURLそのものではなく、表示用の分かりやすいテキストを追加することができます。ワークシート機能を使用する場合、ハイパーリンクを挿入し、提供されるダイアログボックスに表示するテキストを追加することになります。

以下のコードは、VBAを使用してハイパーリンクに表示するテキストを追加する方法を示しています。

Sub TextToDisplayForHyperlink()
  ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/", TextToDisplay:="Automate Excel"
End Sub

結果は以下のようになります。

Add Text To Display Using VBA ハイパーリンク

VBAでScreenTipを追加する

ハイパーリンクに ScreenTip を追加すると、閲覧者がリンクにカーソルを合わせたときに、説明がポップアップ表示されるようになります。 以下のコードは、VBA を使用してハイパーリンクに ScreenTip を追加する方法を示しています。

Sub ScreenTipForHyperlink()
  ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/", TextToDisplay:="Automate Excel", ScreenTip:="Automate Excelへのリンクです"
End Sub

結果は以下のようになります。

Add a ScreenTip to the Hyperlink Using VBA ハイパーリンク

VBAでハイパーリンクを削除する

Hyperlinks.Deleteメソッドを使用すると、セルからハイパーリンクを削除することができます。 次のコードは、セル A1 からハイパーリンク、およびセル内のテキストを削除します。 ハイパーリンクを削除しただけではテキスト自体は削除されないので、テキストを削除したい場合は、Clearメソッドを使用する必要があります。

Sub DeleteHyperlinkinCell()
  Range("A1").Hyperlinks.Delete
  Range("A1").Clear
End Sub

ワークシート内のすべてのハイパーリンクを削除する

Hyperlinks.Deleteメソッドを使用して、ワークシート内のすべてのハイパーリンクを削除することもできます。 次のコードは、ワークブックの最初のワークシートにあるすべてのハイパーリンクを削除します。

Sub RemoveAllHyperlinksInASheet()
  ThisWorkbook.Sheets(1).Hyperlinks.Delete
End Sub

VBAを使用してウェブサイトのハイパーリンクを辿る

次のコードは、ワークブックのFollowHyperlinkメソッドを使用して、Webサイトのアドレスをブラウザの新しいウィンドウで開くことができます。

Sub FollowHyperlinkForWebsite()
  ActiveWorkbook.FollowHyperlink Address:="https://www.automateexcel.com/excel", NewWindow:=True
End Sub

ハイパーリンクを辿ってドライブ上のフォルダに移動する

次のコードは、FollowHyperlinkメソッドを使って、デスクトップ上のExcelFilesというフォルダを開くものです。

Sub FollowHyperlinkForFolderOnDrive()
  ActiveWorkbook.FollowHyperlink Address:="C:\Desktop</ExcelFiles"
End Sub

ハイパーリンクを辿ってドライブ上のファイルを開く

次のコードは、FollowHyperlinkメソッドを使って、デスクトップのExcelFilesというフォルダーにあるWorkbookOneというExcelファイルを開くものです。

Sub FollowHyperlinkForFile()
  ActiveWorkbook.FollowHyperlink Address:="C:\DesktopExcelFiles﹑WorkbookOne.xlsx", NewWindow:=True
End Sub

同じワークブック内の別のシートのセルに移動する

VBAを使用すると、あるシートのセルにハイパーリンクを追加して、同じワークブックの別のシートに移動させることができます。例えば、ワークブックのSheet1、セルA1にいるときに、同じワークブックのSheet2、セルB2へのハイパーリンクを挿入したい場合、SubAddressプロパティを使用してこれを行うことができます。 次のコードは、その方法を示しています。

Sub GoToAnotherCellInAnotherSheetInTheSameWorkbook()
  ActiveSheet.Hyperlinks.Add Range("A1"), Address:="", SubAddress:='" & Sheet2.Name & "'!B2", TextToDisplay:="ここをクリックして、同じワークブックのセルB2に移動します"
End Sub

ワークシート内のすべてのハイパーリンクを表示する

ハイパーリンクコレクションを使えば、ワークシート内のすべてのハイパーリンクをVBAエディタイミディエイトウィンドウに表示することが出来ます。まず、キーボードでCTRL+Gを押すか、VBEエディタの、表示>イミディエイトウィンドウで、イミディエイトウィンドウを表示しておく必要があります。 次のコードは、ワークシートのハイパーリンクをイミディエイトウィンドウに表示します。

Sub ShowAllTheHyperlinksInTheWorksheet()

Dim ws As Worksheet, lnk As Hyperlink

Set ws = ThisWorkbook.Sheets(1)

For Each lnk In ws.Hyperlinks
Debug.Print lnk.Address
Next lnk

End Sub

結果はイミディエイトウィンドウに表示されます。

Show all Hyperlinks in the Intermediate Window Using VBA ハイパーリンク

ワークブック内のすべてのハイパーリンクを表示する

ハイパーリンクコレクションを使って、ワークブック内のすべてのハイパーリンクをループしてメッセージボックスに表示することもできます。 次のコードは、これを実現するために多重ループを使用する例です。

Sub ShowAllTheHyperlinksInTheWorkbook()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
For Each lnk In ws.Hyperlinks
MsgBox lnk.Address
Next lnk
Next ws

End Sub

FollowHyperlinkメソッドでメールを作成する

FollowHyperlinkメソッドを使用してメールを作成することもできます。 以下のコードでは、VBAでFollowHyperlinkメソッドを使用してメールを作成する方法を説明します。

Sub SendEmailUsingHyperlink()

Dim msgLink As String

msgLink = "mailto:" & "person@email.com" & "?" & "subject=" & "こんにちは" & "&" & "body=" & "お元気ですか?"
ActiveWorkbook.FollowHyperlink (msgLink)

End Sub

結果は以下のようになります。

Using Hyperlinks to Create Emails in VBA ハイパーリンク メール送信

エクセルでオートシェイプにハイパーリンクを追加する

Excel のオートシェイプにハイパーリンクを追加して、ユーザーがシェイプをクリックしたときにウェブサイトのアドレスに移動できるようにすることができます。 次のコードは、丸みを帯びた四角形を作成し、四角形にテキストを追加して、ハイパーリンクを追加します。

Sub AddingAHyperlinkToAShape()

Dim myShape As Shape
Set myDocument = Worksheets("Sheet1")
Set myShape = myDocument.Shapes.AddShape(msoShapeRoundedRectangle, 100, 100, 90, 30)

With MyShape
.TextFrame.Characters.Text = "Automate Excel"
End With

ActiveSheet.Hyperlinks.Add Anchor:=myShape, Address:="https://www.automateexcel.com/excel"

End Sub

結果は以下のようになります。

Adding a Hyperlink to An Autoshape in VBA ハイパーリンク 図形

VBAを使用してハイパーリンクの式をセルに挿入する

下の画像のように、セルA4に投稿タイトル、セルB4に投稿リンクがあるとします。

Inserting a Hyperlink Using a Formula with VBA ハイパーリンク

ワークシートのハイパーリンクの式の構文は以下のとおりです。

HYPERLINK(link_location, [friendly_name])

link_location – ドキュメント、ファイル、ワークブック内の場所、またはオンライン サイトへのリンク

friendly_name  (オプション) – セルに表示されるテキストまたは数値

セルC4に、投稿タイトルを表示してハイパーリンクを追加したい場合、普通はC4に=HYPERLINK(B4,A4)という数式を入力します。

Using the Hyperlink Worksheet Formula in VBA ハイパーリンク

この数式をSheet1のセルに挿入するには、VBAで次のコードを記述します。

Sub InsertHyperlinkFormulaInCell()
  ActiveWorkbook.Worksheets("Sheet1").Range("C4").Formula = "=hyperlink(B4,A4)"
End Sub

Accessでボタンにハイパーリンクを追加する

VBAでは、Accessでもハイパーリンクを扱うことができます。例えば、フォームにボタンがあり、ユーザーがそのボタンをクリックすると、あるウェブサイトに移動するようにしたいとします。このような場合、Application.FollowHyperlinkメソッドを使用するのが一つの方法です。 サンプルフォームにbuttonOneというボタンを設置したものを以下に示します。

Adding a Hyperlink in Access Using VBA

このボタンのコードは、次のようになります。

Private Sub buttonOne_Click()

Application.FollowHyperlink ("https://www.automateexcel.com/excel/")

End Sub

Word で選択範囲からハイパーリンクを作成する

Word VBAでもハイパーリンクを扱うことができます。 例えば、Wordに「ここをクリックすると、Excelの自動化サイトに飛びます」というテキストがあり、それが以下のように選択されているとします。

Adding a Hyperlink using VBA in Word VBAを使ってこのテキストをハイパーリンクにするには、次のコードを使用します。

Private Sub TurnASelectionIntoAHyperlink()
  ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="https://www.automateexcel.com/excel/", ScreenTip:="ここをクリックしてください", Target:=NewWindow
End Sub

結果は以下のようになります。

Adding a Hyperlink to a Selected Text in Word with VBA

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples