#excel #vba #text #format
#excel #vba #текст #формат
Вопрос:
Запоздалое поздравление с 1 апреля, друзья. Как и большинство из вас, я всегда чувствовал, что Excel не хватает графического изображения черепа и костей как части vba
MsgBox
рутины. Честно говоря, красный vbCritical
просто не заходит достаточно далеко, чтобы встревожить пользователей, когда они действительно сделали что-то ужасное.
Итак, я подумал, хватит, мне нужен ЧЕРЕП! У многих моих клиентов есть уровень профессионализма, который не позволяет мне создавать индивидуальные ФОРМЫ. Таким образом, не желая нарушать какие-либо правила поведения, я рассмотрел графические текстовые параметры ASCII-ЧЕРЕПОВ. Быстрый поиск в DuckDuck принес мне несколько лучших коллекций черепов в Интернете.
На данный момент я решил, что собираюсь заняться бизнесом, но, как вы можете видеть ниже, MsgBox
версия моего любимого шедевра оставляет желать лучшего! Ясно, что это никого не встревожит… 🙁
Я подозреваю, что проблема заключается в том, что метод, который я использую для хранения рисунков (поскольку Comment.Text
), форматируется каким-то нежелательным образом. Есть ли способ контролировать это или есть лучший способ сохранить текст в Excel, чтобы сохранить формат текстового оформления?
Мой код vba является базовым: MsgBox Range("A1").Comment.Text
Также …. это отлично работает на 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. В текстовом оформлении ASCII часто используется шрифт с одним интервалом (непропорциональный), который не используется Msgbox…
2. @SiddharthRout чтобы было понятно, я копирую на ЗАМЕТКУ или желтую вкладку в ячейке, которая кажется более удобной для текста, чем сама ячейка.
3. Спасибо @TimWilliams. Я не был знаком с термином «Моно-интервал», но я подозреваю, что это может быть проблемой. Я проведу несколько поисков, используя этот термин, и посмотрю, найду ли я что-нибудь.
4. То, что вы хотите от Msgbox (изменить шрифт по умолчанию), не так просто — google.com /…
5. Сохранение текста в комментарии не влияет на содержимое — если вы измените шрифт комментария на (например) Courier, он будет выглядеть «правильно»
Ответ №1:
Как указано в комментариях: ASCII-формат часто использует шрифт с моноразрядным интервалом (непропорциональный), который не является тем, что используется из коробки Msgbox
. Так что это очень сложно, если не невозможно, сделать строго с помощью MsgBox
инструмента.
Однако вместо этого создайте свой собственный MsgBox
и вызывайте его при необходимости. Используя Courier
в качестве шрифта для Label1
(Courier имеет моно-интервал).
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
Очевидно, вы можете поиграть с форматированием самостоятельно, чтобы получить желаемый конечный результат