#excel #vba
#excel #vba
Вопрос:
Мне нужно изменить размер шрифта в поле со списком Excel, потому что размер шрифта по умолчанию слишком мал. Есть ли способ сделать это?
Это код, который я использую для своего макроса:
Option Explicit
Sub DropDown4_Change()
Dim comboValue As String
Dim Key1ColumnIndex As Integer
Dim Key2ColumnIndex As Integer
Dim Index As Integer
Dim comboName As String
Dim comboName2 As String
Dim comboID As Integer
'You can get the name by doing something like this in the immediate window: "? Sheet1.Shapes(1).OLEFormat.Object.Name"
For Index = 1 To ActiveSheet.Shapes.Count
comboName = ActiveSheet.Shapes(Index).OLEFormat.Object.Name
If InStr(comboName, "Drop") > 0 Then
'MsgBox InStr(comboName, "Drop")
comboName2 = comboName
comboID = Index
End If
Next
comboValue = ActiveSheet.Shapes(comboID).ControlFormat.List(ActiveSheet.Shapes(comboID).ControlFormat.ListIndex)
Select Case comboValue
Case "By Keyphrase"
Key1ColumnIndex = 18
Key2ColumnIndex = 19
Case "By Region"
Key1ColumnIndex = 19
Key2ColumnIndex = 18
Case "Default"
Key1ColumnIndex = 1
Key2ColumnIndex = 1
End Select
Range("DataValues").sort Key1:=Range("DataValues").Cells(1, Key1ColumnIndex), _
Order1:=xlAscending, Header:=xlNo, DataOption1:=xlSortNormal, _
Key2:=Range("DataValues").Cells(1, Key2ColumnIndex), order2:=xlAscending
End Sub
Спасибо.
Ответ №1:
Это невозможно сделать
Размер шрифта в раскрывающемся списке формы не форматируется — даже программно. Если это абсолютное требование, вам придется переключить его на элемент управления ActiveX.
Ответ №2:
Как сказал @Alain, вы просто не можете сделать это чистым способом, или вам нужно использовать элемент управления ActiveX.
Но здесь есть и обходной путь. С помощью программирования вы можете временно увеличить масштаб листа, чтобы увеличить размер шрифта для проверки данных.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
ActiveWindow.Zoom = 120
Else
ActiveWindow.Zoom = 100
End If
End Sub
Кредиты и более подробная информация: https://www.contextures.com/xldataval08.html#zoommacro