【ExcelVBA】ハイパーリンクで処理を起こす

ハイパーリンクで処理を起こす

 

エクセルではハイパーリンクを貼ることができますが、
エクセル自体の機能だと、別の場所に飛ぶ(移動する)ことくらいしか設定できません。

VBAで書くと、ハイパーリンクをクリックすると、なにかしらの処理を起こすことのできる方法があります。

この処理を行うのは、Private Subで行います。
通常モジュール内に記述するのではなく、シート単位でのイベント処理を行います。

書くときは、プロジェクトウインドウから処理を起こしたいシートに書いてくださいね。
例えば、Sheet1で処理したい場合は、VBAProjectの下のSheet1をダブルクリックして書き始めてください。

f:id:p_address:20200424100209j:plain

 

下におサンプルを載せておきますので、コピってアレンジしてみてください。

 

 


●3列目4列目5列目のハイパーリンクをクリックすると、それぞれ別のダイアログを出す

(事前準備)
あらかじめ、シート1のセルC1、D1、E1にハイパーリンクをつくっておいてください。(作り方はセル内に値が入っている状態で、右クリック→ハイパーリンク→このドキュメント内→参照先は同じ場所(セルC1ならセルC1)にして、移動しないように設定しておく)

f:id:p_address:20200427135535j:plain

 

’---

 

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

'3列目のハイパーリンクをクリックしたときは「3列目です」とメッセージボックスを表示する
If Target.Range.Column = 3 Then
  MsgBox "3列目です"
'4列目のハイパーリンクをクリックしたときは「4列目です」とメッセージボックスを表示する
  ElseIf Target.Range.Column = 4 Then
    MsgBox "4列目です"
'5列目のハイパーリンクをクリックしたときは「5列目です」とメッセージボックスを表示する
    ElseIf Target.Range.Column = 5 Then
      MsgBox "5列目です"
End If

End Sub

 

’---

 

これを書いて、先ほど作ったハイパーリンクをクリックすると、動作確認できます。
これもいちいちボタンをたくさん設置したくないプログラムを組むときにとても便利です。

 

 

 

 

 

 

 

ではまた。