2016-01-05 9 views

ответ

3

У вас нет. Диалог, отображаемый через MsgBox, использует шрифт, который настроен для системных диалогов. Если вам нужен специальный диалог, вам нужно создать пользовательский диалог, например. like this:

Sub CustomMsgBox(msg) 
    Set ie = CreateObject("InternetExplorer.Application") 
    ie.Navigate "about:blank" 

    While ie.ReadyState <> 4 : WScript.Sleep 100 : Wend 

    ie.ToolBar = False 
    ie.StatusBar = False 
    ie.Width  = 300 
    ie.Height = 120 

    ie.document.body.innerHTML = "<p class='msg'>" & msg & "</p>" & _ 
    "<p class='ctrl'><input type='hidden' id='OK' name='OK' value='0'>" & _ 
    "<input type='submit' value='OK' id='OKButton' " &_ 
    "onclick='document.all.OK.value=1'></p>" 

    Set style = ie.document.CreateStyleSheet 
    style.AddRule "p.msg", "font-family:times new roman;font-weight:bold;" 
    style.AddRule "p.ctrl", "text-align:rightf;" 

    ie.Visible = True 

    On Error Resume Next 
    Do While ie.Document.all.OK.value = 0 
    WScript.Sleep 200 
    Loop 
    ie.Quit 
End Sub 
0

Я хотел бы добавить предварительно/предварительные метки, как показано ниже, так что формат не теряется. Затем я бы изменил высоту/ширину на стандартный минимальный размер экрана, например 800x400. Затем для слабовидящих измените StatusBar на True, что позволяет «Изменить масштаб».

Sub CustomMsgBox(msg) 
    Set ie = CreateObject("InternetExplorer.Application") 
    ie.Navigate "about:blank" 

    While ie.ReadyState <> 4 : WScript.Sleep 100 : Wend 

    ie.ToolBar = False 
    ie.StatusBar = True 
    ie.Width  = 800 
    ie.Height = 400 

    ie.document.body.innerHTML = "<p class='msg'><pre>" & msg & "</pre></p>" & _ 
    "<p class='ctrl'><input type='hidden' id='OK' name='OK' value='0'>" & _ 
    "<input type='submit' value='OK' id='OKButton' " &_ 
    "onclick='document.all.OK.value=1'></p>" 

    Set style = ie.document.CreateStyleSheet 
    style.AddRule "p.msg", "font-family:times new roman;font-weight:bold;" 
    style.AddRule "p.ctrl", "text-align:rightf;" 

    ie.Visible = True 

    On Error Resume Next 
    Do While ie.Document.all.OK.value = 0 
    WScript.Sleep 200 
    Loop 
    ie.Quit 
End Sub 
+1

Это похоже на комментарий, наложенный на другой ответ, а не на фактический ответ. –

+0

Согласовано. Это незначительные изменения. – vbcoder

Смежные вопросы