2

に画像を入れたかったmsgbox。検索したところ、不可能であることがわかったので、画像を の入力ボックスの背景に配置することにしましたmsgbox。しかし、私はそれを行う方法を見つけることができません:

  1. 入力ボックスの背景に画像を配置する
  2. 境界線を削除して背景色を変更するなど、入力ボックスをカスタマイズします
4

1 に答える 1

4

組み込みInputBox関数はカスタム背景をサポートしていません。ただし、 Internet Explorer COM オブジェクトを使用してカスタム ダイアログを構築できます。

Set ie = CreateObject("InternetExplorer.Application")

ie.Navigate "about:blank"
ie.document.title = "some title"
ie.ToolBar        = False
ie.Resizable      = False
ie.StatusBar      = False
ie.Width          = 300
ie.Height         = 150

Set style = ie.document.CreateStyleSheet()
style.AddRule "body", "background-image: url('C:\path\to\your.jpg')"
Set style = Nothing

Do Until ie.ReadyState = 4 : WScript.Sleep 100 : Loop

ie.document.body.innerHtml = "<p><input type='text' id='userinput'></p>" _
  & "<p><input type='hidden' id='OK' name='OK' value='0'>" _
  & "<input type='submit' value='OK' onClick='VBScript:OK.Value=1'>" _
  & "<input type='submit' value='Cancel' onClick='VBScript:OK.Value=-1'></p>"
ie.Visible = True
ie.document.all.userinput.focus

Do While ie.document.all.OK.value = 0 : WScript.Sleep 100 : Loop

If ie.document.all.OK.value = 1 Then
  'user pressed [OK]
Else
  'user clicked [Cancel]
End If

もちろん、これは非常に基本的な例にすぎないため、スタイルと HTML コードをさらにカスタマイズする必要があります。考えられる改善の 1 つは、データ URIの形式で背景画像を含めることです。

style.AddRule "body", "background-image: url(data:image/jpeg;base64,/9j/4AA...')

そうすれば、背景用に外部ファイルを参照する必要がなくなります。画像ファイルを base64 としてエンコードするために使用できる無料のオンライン エンコーダーがあります

于 2013-10-10T10:03:39.893 に答える