DOR Пользователь Сообщений: 178 |
есть такое сообщение: как <<СРОК СТРАХОВАНИЯ>> выделить жирным шрифтом и красным цветом? |
MsgBox «все пропало шеф, » & Format(«все пропало!», «>») Похоже, это все, что доступно для строк :О( |
|
ikki Пользователь Сообщений: 9709 |
в стандартном MsgBox нельзя. фрилансер Excel, VBA — контакты в профиле |
DOR Пользователь Сообщений: 178 |
машущие флажками человечки это канечно забавно, но лишнее. можете на примере показать как разукрасить label или принципеально TextBox? Слусл такой, если поле пустое и пытаешься сохранить, то выдает ошибку, то что в << >> нужно заменить на жирный шрифт и красный цвет. |
насчет цвета не знаю, а жирный шрифт можно так: |
|
DOR Пользователь Сообщений: 178 |
текст ошибки будет меняться, соответственно это не подходит. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
Просто в свойствах Label в строке Font укажите «жирный» (можно и размер шрифта ещё), а в строке Fore Color — выбрать нужный цвет. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
Прочитал невнимательно — Вам нужно ЧАСТЬ строки. Тогда, как сказали выше — из трёх Label, А если фрагмент, который нужно красить, будет меняться, то используйте переменную. |
DOR Пользователь Сообщений: 178 |
Это было бы приемлемо, если текст сообщения был примерно одинаковый, текс бокса 1 может содержать одно слово, а может и целую строку. например: |
ну можно по разному извратиться. Так ведь тоже можно. И поле под «переменное значение» сделать с запасом по ширине. |
|
DOR Пользователь Сообщений: 178 |
извратиться то можно, но не нужно, нужно чтобы все было красиво, а не топориком рублено. придеться видать оставить капсом. хоть это и не очень… |
ran Пользователь Сообщений: 7091 |
Вставьте это и попробуйте нажать кнопку. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) |
Тут надо использовать Rich Textbox Control, пример тут: http://vbbook.ru/book/82/ |
|
DOR Пользователь Сообщений: 178 |
#14 21.03.2011 22:27:23 Опять же изменение цвета и размера происходит не на кусок текста, а на весь бокс. Или я может что не понял. |
As Ralph suggests, it’d be better to display your message in a UserForm
where you’d have easy control over the text characteristics.
However, it is possible to change the colour of your MessageBox text, using the system color API’s. As the MessageBox is a Window, you can alter the colour parameters of it (not just text, but various others too).
You’d want to ensure that you reset the original values immediately afterwards of course otherwise all of your windows will display in the modified colours.
The below code will automatically detect 32-bit and 64-bit systems and should work on both equally well:
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetSysColor Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare PtrSafe Function SetSysColors Lib "user32" _
(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#Else
Private Declare Function GetSysColor Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare Function SetSysColors Lib "user32" _
(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#End If
Private Const COLOR_WINDOWTEXT As Long = 8
Private Const CHANGE_INDEX As Long = 1
Public Sub RunMe()
Dim defaultColour As Long
'Store the default system colour
defaultColour = GetSysColor(COLOR_WINDOWTEXT)
'Set system colour to red
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed
MsgBox "Incorrect", , "Your result is..."
'Set system colour to green
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbGreen
MsgBox "Correct", , "Your result is..."
'Restore default value
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, defaultColour
End Sub
|
|
Вопрос:
Я хочу изменить цвет шрифта из MsgBox
Чтобы понять, что я хочу, я выбрал этот пример:
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim results As String
a = InputBox("Enter your first value:")
b = InputBox("Enter your second value:")
c = InputBox("Enter your third value:")
d = a - b + c
If d = 0 Then
results = "Correct"
MsgBox "Your results is: " & results
Else
results = "Incorrect"
MsgBox " Your Results is: " & results
End If
“Текст "Correct"
я хочу быть с зеленым цветом, когда появляюсь в MsgBox
"Incorrect"
текст, который я хочу быть с красным цветом, когда появляюсь в MsgBox
Я надеюсь, что то, что я запросил, возможно.
Лучший ответ:
Как предлагает Ральф, было бы лучше отобразить ваше сообщение в UserForm
где у вас будет легкий контроль над текстовыми характеристиками.
Тем не менее, можно изменить цвет текста MessageBox, используя API цвета системы. Поскольку MessageBox – это Окно, вы можете изменить его цветовые параметры (не только текст, но и другие).
Вы должны убедиться, что вы сразу же сбросите исходные значения, иначе все ваши окна будут отображаться в измененных цветах.
В приведенном ниже коде будут автоматически обнаружены 32-битные и 64-битные системы и должны работать одинаково хорошо:
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetSysColor Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare PtrSafe Function SetSysColors Lib "user32" _
(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#Else
Private Declare Function GetSysColor Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare Function SetSysColors Lib "user32" _
(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#End If
Private Const COLOR_WINDOWTEXT As Long = 8
Private Const CHANGE_INDEX As Long = 1
Public Sub RunMe()
Dim defaultColour As Long
'Store the default system colour
defaultColour = GetSysColor(COLOR_WINDOWTEXT)
'Set system colour to red
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed
MsgBox "Incorrect", , "Your result is..."
'Set system colour to green
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbGreen
MsgBox "Correct", , "Your result is..."
'Restore default value
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, defaultColour
End Sub
- Remove From My Forums
-
Question
-
dear all,
good greeting
i have my private code in userform vba :
If IsDate(Me.DTPicker3) Then
If CDate(Me.DTPicker3) <= Date + 30 Or Empty Then
MsgBox «alert» & TextBox5
Me.TextBox5.BackColor = vbRed
End Ifi want the content of textbox5 which will be appear in msg box (in bold line and red color)
how can i made it ?
regards………..
-
Edited by
Monday, April 23, 2018 12:46 PM
-
Edited by
Answers
-
Hi,
I’m afraid MsgBox (Excel VBA) has such features.
If you want change size, color, or family of font, you need to use UserForm.Regards,
Ashidacchi — http://hokusosha.com/
-
Marked as answer by
TAREK SHARAF
Tuesday, April 24, 2018 6:06 AM
-
Marked as answer by
-
Hello TAREK SHARAF,
To show the content of textbox in msgbox, you could use
MsgBox "alert " & Me.TextBox5.Text
However, as far as I know, msgbox does not support showing the content in bold and red color. I would also suggest you custom a userform to replace msgbox for showing the content.
By the way, what’s the state of the below thread? If it is resolved, please mark helpful reply to close the thread. If not, please follow up to let us know your current state.
regarding creat code to make bold border for unempty rows in excel sheet
Best Regards,
Terry
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com.-
Marked as answer by
TAREK SHARAF
Tuesday, April 24, 2018 6:06 AM
-
Marked as answer by