UserForm上にハイパーリンクを作る


上図のように、UserForm 上にハイパーリンクを作るには次のようにします。ここでは便宜上、メールアドレスのハイパーリンクを設定したラベルを「Label1」とします。

(1) VBE の [プロパティ ウィンドウ] で Label1 のフォントを設定します。
ForeColor = 青色
Font = 下線あり

(2) 同じく Label1 の MouseIcon プロパティに のようなマウス ポインタの画像を設定します。

絵心に自信がある方は自作してもいいですし、そうでない方は Windows フォルダの Cursors フォルダから選択すると簡単です。Cursors フォルダが見つからない方は……どなたか詳しい方に聞いてください。

(3) 最後に、Label1 の MousePointer プロパティを「99-fmMousePointerCustom」にします。ここまでの設定で上図のように表示されます。次はハイパーリンクがクリックされたときの動作を記述します。Label1 をダブルクリックして次のプロシージャを書きます。

Private Sub Label1_Click()
    Range("A1").Select
    With ActiveSheet
        .Hyperlinks.Add Anchor:=Selection, Address:="mailto:toru.tanaka@nifty.com"
        .Hyperlinks(1).Follow NewWindow:=True
    End With
    Range("A1").ClearContents
End Sub

見てわかるように、Lable1 がクリックされたらセル A1 にハイパーリンクを挿入して、ただちにそのハイパーリンクを実行します。そして、最後にセル A1 を削除します。

Address:="mailto:toru.tanaka@nifty.com"

のメール アドレスは、Label1 の Caption から取ってもいいですね。

セル A1 に重要なデータが入力されていてハイパーリンクを挿入できないのでしたら、いっそのこと新しいワークシートを挿入する手もあります。ちょっと長くなりますが、こんな感じです。

Private Sub Label1_Click()
    With Worksheets.Add
        .Range("A1").Select
        .Hyperlinks.Add Anchor:=Selection, Address:="mailto:toru.tanaka@nifty.com"
        .Hyperlinks(1).Follow NewWindow:=True
        .Range("A1").ClearContents
        Application.DisplayAlerts = False
        .Delete
        Application.DisplayAlerts = True
    End With
End Sub

あるいは、どうしてもセルを使いたくないときは、ハイパーリンクを直接開いてしまいましょう。てゆーか、これが一番簡単ですね(^^;

Private Sub Label1_Click()
    ThisWorkbook.FollowHyperlink Address:="mailto:toru.tanaka@nifty.com"
End Sub