Excel VBA(エクセル マクロ) 小技集そのL ハイパーリンク(Hyperlinks)自動挿入

Excel VBAでハイパーリンクを自動的に設定する方法。

例えばAccessからExcelにデータをコピーしてきて、データに番号があり、その番号にフォルダがあるとする。

そこにハイパーリンクを貼る事を考える。

list.xls参照

膨大なデータを手入力でハイパーリンクを貼っていくとそれだけで時間が過ぎてしまう。

そこで、Excel VBAで自動でハイパーリンクを挿入することを考える。

何万項目でも10秒でハイパーリンクが貼れる優れもの。

詳細はlist.xlshyper.zip)のVBEで見てください。

Sub ハイパーリンク()
Dim pas As String
Dim shit As String
Dim shit1 As String
Dim Linex As Integer
Dim Liney As Integer
shit1 = "VBA動作ボタン"
pas = Sheets(shit1).Cells(5, 2).Value
shit = Sheets(shit1).Cells(2, 2).Value
Liney = Sheets(shit1).Cells(3, 2).Value
Linex = Sheets(shit1).Cells(4, 2).Value
Do Until Sheets(shit).Cells(Liney, Linex).Value = ""
 Sheets(shit).Hyperlinks.Add Sheets(shit).Cells(Liney, Linex) _
 , pas & "\" & Sheets(shit).Cells(Liney, Linex).Value
 Liney = Liney + 1
Loop

End Sub

ここでは、「改訂連絡書集」のB2列からしたの番号について、番号のフォルダがあり、番号のフォルダにハイパーリンクを貼るようにしている。

VBA動作ボタンシートで、ハイパーリンクを貼るシート名、始まりの行、列、ハイパーリンクを貼るフォルダを書き込んでボタンを押すと、設定したフォルダにハイパーリンクが貼れる。

中核は赤字の太字の部分である。

LineyとLinex(2行、2列)から下方向に値を見て行き、値がなくなるまで行う。

Sheets(shit).Hyperlinks.Add Sheets(shit).Cells(Liney, Linex), pas & "\" & Sheets(shit).Cells(Liney, Linex).Valueで、ハイパーリンクを貼る。

ここではshit="改訂連絡書集"となっている。
Sheets(shit).Hyperlinks.Addで改訂連絡書集のハイパーリンクをはる。
その後の値Sheets(shit).Cells(Liney, Linex)でハイパーリンクをはるセルを設定。
次の値pas & "\" & Sheets(shit).Cells(Liney, Linex).Valueで、ハイパーリンクのとび先を指定。
第3引数も指定でき、飛び先で***.xlsを指定した場合、シート名も指定可能。
第4,5引数も指定でき、ハイパーリンクを貼るセル名およびカーソルを合わせた時のセル名を指定できる。

Excel VBAを実行するだけで、ホームページやフォルダを開いたり、ハイパーリンクを解除できる。

Sheets(shit).Hyperlinks.Add Sheets(shit).Cells(Liney, Linex) _
, pas & "\" & Sheets(shit).Cells(Liney, Linex).Value


ActiveSheet.Range("A1").Hyperlinks(1).Follow ←ハイパーリンクのとび先をVBAで表示
ActiveSheet.Range("A1").Hyperlinks(1).Delete ←ハイパーリンクを解除


さらに、ハイパーリンクを設定しなくても自動でハイパーリンクのとび先をVBAで表示可能。

Sheets(shit).Hyperlinks.Add Sheets(shit).Cells(Liney, Linex) _
 , pas & "\" & Sheets(shit).Cells(Liney, Linex).Value.Follow


ハイパーリンクをたくさんつけなければならない時はVBAで自動可させてみよう。





忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP