web-dev-qa-db-ja.com

メッセージボックスにハイパーリンクを配置する

メッセージボックスにハイパーリンクを追加することは可能ですか?私はこのようなことをしようとしています:

   MsgBox "Sorry, but you have an out-of-date database version.  Please redownload via the batch file to ensure that you have the latest version. Contact the administrator of this database or your manager if you need help." & vbCr _
        & vbCr _
        & "Your current database version is " & CurrentVer & " which may be out of date. The current database version prescribed on the network share is " & FileVer & ". They must match in order for you to proceed." & vbCr _
        & vbCr _
        & "For CSC self-help instructions on how to reload the most current version of the PRF Intake Tool to your computer, please click the link below to be directed to CSC Online instructions." & vbCr _
        & vbCr _
        & "http://www.OurSite.com/online/Solutions/Search_Results.asp?opsystem=7&keywords=PRF+Intake+Tool&Category=", , "There is a problem..."

問題は、ハイパーリンクがクリックできないことです。ユーザーがリンクをクリックするだけでダウンロードが自動的に開始されるように、これを実行したいと思います。

Win7環境でAccess2010を使用しています。

7
Johnny Bones

簡単な答えは[〜#〜] no [〜#〜]です。 MsgBoxはハイパーリンクを許可せず、プレーンテキストのみを許可します。

したがって、これは問題なく機能するはずの回避策です。

Set objShell = CreateObject("Wscript.Shell")

intMessage = MsgBox("Sorry, but you have an out-of-date database version.  Please redownload via the batch file to ensure that you have the latest version. Contact the administrator of this database or your manager if you need help." & vbCr _
        & vbCr _
        & "Your current database version is " & CurrentVer & " which may be out of date. The current database version prescribed on the network share is " & FileVer & ". They must match in order for you to proceed." & vbCr _
        & vbCr _
        & "Would you like to learn more about CSC self-help instructions on how to reload the most current version of the PRF Intake Tool to your computer?", _
        vbYesNo, "There is a problem...")

If intMessage = vbYes Then
    objShell.Run ("http://www.OurSite.com/online/Solutions/Search_Results.asp?opsystem=7&keywords=PRF+Intake+Tool&Category=")
Else
    Wscript.Quit
End If

下線のスタイルが必要な場合は、 http://j-walk.com/ss/Excel/tips/tip71.htm で説明されているように、独自のユーザーフォームを作成する必要があります。手順は次のとおりです。

  1. Labelオブジェクトを追加し、メッセージを入力します
  2. ラベルを青(ForeColor)と下線(Font)にして、典型的なハイパーリンクのように見せます。
  3. ラベルのMousePointerプロパティを99に設定します-fmMousePointerCustom
  4. ラベルのMouseIconイメージのカーソルファイルを指定します(ある場合)。
  5. ラベルをダブルクリックして、サブルーチンClickイベントを作成します。サンプルコードは次のとおりです。

    Private Sub Label1_Click()
      Link = "http://www.YOUR_SITE.com"
      On Error GoTo NoCanDo
      ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
      Unload Me
      Exit Sub
     NoCanDo:
      MsgBox "Cannot open " & Link End Sub
    

「mailto」ハイパーリンクを作成するには、次のようなステートメントを使用します。

Link = "mailto:[email protected]"
10