Как правильно отформатировать текстовый Ascii для Excel MsgBox - PullRequest
0 голосов
/ 03 апреля 2019

Запоздалые счастливые друзья 1 апреля. Как и большинство из вас, я всегда чувствовал, что в Excel отсутствует графическое изображение черепа и костей как часть процедуры vba MsgBox. Честно говоря, красный vbCritical просто не заходит слишком далеко, чтобы тревожить пользователей, когда они действительно сделали что-то ужасное.

Итак, я подумал, достаточно, достаточно , мне нужен ЧЕРЕП! Многие из моих клиентов имеют стандарт профессионализма, который мешает мне создавать собственные формы. Таким образом, не желая нарушать какие-либо кодексы поведения, я рассмотрел варианты графического текста ASCII SKULLS. Быстрый DuckDuck поиск принес мне некоторые из лучших произведений черепа в Интернете.

В этот момент я подумал, что собираюсь заниматься бизнесом, но, как вы можете видеть ниже, MsgBox версия моего моего любимого шедевра оставляет желать лучшего! Понятно, это никого не побеспокоит ... 101

Я подозреваю, что проблема заключается в методе, который я использую для хранения произведений искусства (так как Comment.Text) форматирует каким-то нежелательным образом. Есть ли способ контролировать это, или есть лучший способ для хранения текста в Excel, чтобы сохранить формат художественного текста?

Мой код VBA является основным: MsgBox Range("A1").Comment.Text

Not Scary Enough!

Также .... это прекрасно работает на SO!

                 uuuuuuu
             uu$$$$$$$$$$$uu
          uu$$$$$$$$$$$$$$$$$uu
         u$$$$$$$$$$$$$$$$$$$$$u
        u$$$$$$$$$$$$$$$$$$$$$$$u
       u$$$$$$$$$$$$$$$$$$$$$$$$$u
       u$$$$$$$$$$$$$$$$$$$$$$$$$u
       u$$$$$$"   "$$$"   "$$$$$$u
       "$$$$"      u$u       $$$$"
        $$$u       u$u       u$$$
        $$$u      u$$$u      u$$$
         "$$$$uu$$$   $$$uu$$$$"
          "$$$$$$$"   "$$$$$$$"
            u$$$$$$$u$$$$$$$u
             u$"$"$"$"$"$"$u
  uuu        $$u$ $ $ $ $u$$       uuu
 u$$$$        $$$$$u$u$u$$$       u$$$$
  $$$$$uu      "$$$$$$$$$"     uu$$$$$$
u$$$$$$$$$$$uu    """""    uuuu$$$$$$$$$$
$$$$"""$$$$$$$$$$uuu   uu$$$$$$$$$"""$$$"
 """      ""$$$$$$$$$$$uu ""$"""
           uuuu ""$$$$$$$$$$uuu
  u$$$uuu$$$$$$$$$uu ""$$$$$$$$$$$uuu$$$
  $$$$$$$$$$""""           ""$$$$$$$$$$$"
   "$$$$$"                      ""$$$$""
     $$$"                         $$$$"

1 Ответ

2 голосов
/ 03 апреля 2019

Как указано в комментариях: ASCII-арт часто опирается на моно-разнесенный (непропорциональный) шрифт, а не тот, который используется Msgbox "из коробки".Так что это очень сложно, если не невозможно сделать строго с помощью инструмента MsgBox.

Однако вместо этого создайте свой собственный MsgBox и вызывайте его при необходимости.Использование Courier в качестве шрифта для Label1 (Courier IS моно-интервал).

enter image description here

Option Explicit
Private Sub UserForm_Initialize()
    Dim DispStr() As String

    ReDim DispStr(1 To 26)

DispStr(1) = "                 uuuuuuu"
DispStr(2) = "             uu$$$$$$$$$$$uu"
DispStr(3) = "          uu$$$$$$$$$$$$$$$$$uu"
DispStr(4) = "         u$$$$$$$$$$$$$$$$$$$$$u"
DispStr(5) = "        u$$$$$$$$$$$$$$$$$$$$$$$u"
DispStr(6) = "       u$$$$$$$$$$$$$$$$$$$$$$$$$u"
DispStr(7) = "       u$$$$$$$$$$$$$$$$$$$$$$$$$u"
DispStr(8) = "       u$$$$$$""   ""$$$""   ""$$$$$$u"
DispStr(9) = "       ""$$$$""      u$u       $$$$"""
DispStr(10) = "        $$$u       u$u       u$$$"
DispStr(11) = "        $$$u      u$$$u      u$$$"
DispStr(12) = "         ""$$$$uu$$$   $$$uu$$$$"""
DispStr(13) = "          ""$$$$$$$""   ""$$$$$$$"""
DispStr(14) = "            u$$$$$$$u$$$$$$$u"
DispStr(15) = "             u$""$""$""$""$""$""$u"
DispStr(16) = "  uuu        $$u$ $ $ $ $u$$       uuu"
DispStr(17) = " u$$$$        $$$$$u$u$u$$$       u$$$$"
DispStr(18) = "  $$$$$uu      ""$$$$$$$$$""     uu$$$$$$"
DispStr(19) = "u$$$$$$$$$$$uu    """"""""""    uuuu$$$$$$$$$$"
DispStr(20) = "$$$$""""""$$$$$$$$$$uuu   uu$$$$$$$$$""""""$$$"""
DispStr(21) = """""""      """"$$$$$$$$$$$uu """"$"""""""
DispStr(22) = "           uuuu """"$$$$$$$$$$uuu"
DispStr(23) = "  u$$$uuu$$$$$$$$$uu """"$$$$$$$$$$$uuu$$$"
DispStr(24) = "  $$$$$$$$$$""""""""           """"$$$$$$$$$$$"""
DispStr(25) = "   ""$$$$$""                      """"$$$$"""""
DispStr(26) = "     $$$""                         $$$$"""

Me.Label1.Caption = Join(DispStr, vbNewLine)
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub

enter image description here

Очевидно, что вы можете поиграть с форматированием самостоятельно, чтобы получить желаемый конечный результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...