Изменение размера шрифта в поле со списком формы в MS Excel

#excel #vba

#excel #vba

Вопрос:

Мне нужно изменить размер шрифта в поле со списком Excel, потому что размер шрифта по умолчанию слишком мал. Есть ли способ сделать это?

Комбинация в листе MS 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