Ограничения VBA MsgBox — вывод более 1024 символов

Я хочу отобразить длинное сообщение в MsgBox (более 1024 символов). Какой метод я могу использовать. Я нашел это:

Dim objShell As Object
Set objShell = CreateObject("Wscript.Shell")

Можете ли вы сказать мне, есть ли какие-либо методы для достижения этого? Может быть, кто-то знает лучшее решение или недостатки использования Wscript.Shell??

О, и еще кое-что, я хочу добавить этот код в надстройку, которую я создал и которую я хочу раздать другим коллегам.


person tomek198823    schedule 29.06.2018    source источник
comment
WScript.Shell — это объект, который можно использовать для запуска других приложений. С чего вы взяли, что это как-то связано с MsgBox? . Вам нужно будет включить ссылки на то, где вы взяли этот пример и некоторый соответствующий код, а не список пожеланий! Также посетите справочный центр, а также Как спросить, а также узнайте о минимально воспроизводимом примере.   -  person ashleedawg    schedule 29.06.2018
comment
objShell.Run "mshta.exe vbscript:close(CreateObject(""WScript.shell"").Popup(""" & MessageBody & """," & SecondsToAutoClose & ",""" & MessageTitle & """))" позволит вам открыть окно, подобное msgbox, не приостанавливая макрос. Но не проверял лимит символов.   -  person PatricK    schedule 29.06.2018
comment
@PatricK Я искал этот код. 449 символ макс.   -  person TinMan    schedule 29.06.2018


Ответы (1)


Итак, создайте форму, похожую на MsgBox:

введите здесь описание изображения

Я использовал TextBox вместо Label и установил серый цвет фона. Я также указал для свойства прокрутки TextBox значение «Вертикальная полоса прокрутки», поэтому, если текст превышает видимый предел, вы сможете прокручивать его.

Не стесняйтесь устанавливать для свойства границы TextBox значение Not Set, для этого свойства только для чтения — значение True и добавлять поле изображения MsgBox для более аутентичного вида.

person Jeremy Thompson    schedule 29.06.2018
comment
@tomek198823 томек198823, если вы хотите передать его коллегам, вы можете добавить код в виде файла . Net DLL, метод 3 здесь: stackoverflow.com/questions/37074533/ - person Jeremy Thompson; 29.06.2018