Страницы: 1
RSS
вывод доступных шрифтов в ComboBox
 
Уважаемые форумчане! Все доброго времени суток.
Может кто-нибудь подсказать, как правильно вывести доступные шрифты в ComboBox. По моей задумке, после выбора шрифта - набор текста в TextBox продолжается уже выбранным шрифтом.
Файл во вложении.
Иногда только промахнувшись, понимаешь как ты попал.
 
Цитата
Эмир пишет: набор текста в TextBox продолжается
Именно продолжается? Не изменяется весь текст в текстбоксе?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Изменяется весь текст.
А возможно ли не весь???
Иногда только промахнувшись, понимаешь как ты попал.
 
Нет, не весь нельзя. Поэтому и спросил. Чтобы понять имеет ли смысл хоть какое-то решение искать...
Код
Sub GetFonts()
    Dim lCount As Long, sFonts() As String
    With Application.CommandBars("Formatting")
        If Not .FindControl(ID:=172) Is Nothing Then
            With .FindControl(ID:=172)
                ReDim sFonts(1 To .ListCount)
                For lCount = 1 To .ListCount
                    sFonts(lCount) = .List(lCount)
                    Debug.Print sFonts(lCount)
                Next
            End With
        End If
    End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, спасибо, только куда это прикрутить, я не очень понял. Не могли бы вы еще раз подсказать?
Иногда только промахнувшись, понимаешь как ты попал.
 
Как бы...Вы же просили получение в Combo - советую тогда уж поискать в сети, как правильно заполнять комбобокс. На пользу пойдет. А то я начинаю предвидеть следующий вопрос: как для определенного текстбокса установить выбранный шрифт :-)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, помогите мне, пожалуйста, вставить этот код в мою форму. Я уже пробовал, не получается. Ваш код для меня сложный и я изучу его обязательно после того как он заработает.

А с текстом в текстбоксе я справлюсь, обещаю :-)!
Иногда только промахнувшись, понимаешь как ты попал.
 
Уважаемый RAN, добрый вечер, может вы мне поможете?
Хотя бы из-за аватарки )))
Не могу ничего нарыть в сети по такому случаю?
Иногда только промахнувшись, понимаешь как ты попал.
 
Кто-то может дать полезные ссылки, где посмотреть по данной теме?
Иногда только промахнувшись, понимаешь как ты попал.
 
Доброе время суток
У меня только Id раскрывающегося списка названия шрифта равен 1728 для Excel 2010, возможно, будет плавать от версии к версии.
Успехов.
 
Спасибо за помощь. Теперь разберусь.
Иногда только промахнувшись, понимаешь как ты попал.
 
Добрый день.
Возникает ошибка при вызове формы через кнопку? Ошибка метода ListCount для объекта CommandBarCombobox. Как исправить это? Подскажите, пожалуйста.
Иногда только промахнувшись, понимаешь как ты попал.
 
Во втором примере, тоже самое...
Иногда только промахнувшись, понимаешь как ты попал.
 
Вероятно глюк файла. Вчера в вашем пробовал, то сработает, то нет. Почему - не ясно. Смените файл.
 
Новый файл создал - не помогает.
Если захожу в редактор vba - запускаю форму оттуда - работает. Как только с кнопки - нет.
Пробовал на двух компьютерах - не помогает.
Может есть еще идеи?
Изменено: Эмир - 24.01.2015 10:48:03
Иногда только промахнувшись, понимаешь как ты попал.
 
RAN, я на своём файле делал. Увы, действительно при использовании ActiveX CommandButton на листе получается такое. Причём далее код не работает при любом вызове, пока не перезагрузишь файл.
Так что либо использовать вызов формы для обычной кнопки (не ActiveX), либо адаптировать такой код, сканирующий список установленных шрифтов в системе.
P. S. Может это последствия тех обновлений, которые блокировали ActiveX.
Изменено: Андрей VG - 24.01.2015 10:52:16
 
Действительно, так.
Работает только на кнопке не ActiveX.
Иногда только промахнувшись, понимаешь как ты попал.
 
Может проще прописать в массив нужные шрифты? Сколько их нужно? Десяток?
 
Это, конечно, облегчит задачу и так тоже подойдет, но очень интересно увидеть, как такие трудности можно обходить.
Иногда только промахнувшись, понимаешь как ты попал.
 
Если очень свербит
 
RAN - я вам очень признателен.
Спасибо! Это по истине просто и логично!
Иногда только промахнувшись, понимаешь как ты попал.
 
Меня тоже эта тема заинтересовала, решение придумал сам.
Код
Private Sub UserForm_Initialize()
    Dim WordApp As Object, i As Integer
    Set WordApp = CreateObject("Word.Application")
    For i = 1 To WordApp.FontNames.Count
        Me.cmbFonts2.AddItem WordApp.FontNames(i)
    Next i
    WordApp.Quit
    Set WordApp = Nothing
End Sub
Изменено: Niko.x87 - 17.08.2019 20:45:19
 
Niko.x87, Вроде и замечательный ход, но есть один крохотный нюанс, Word - отдельное приложение и может быть не установлено +  шрифт может быть установлен для конкретного приложения программно. Второй случай -редкость, а вот первый можно обойти так
Код
Const HKEY_LOCAL_MACHINE = &H80000002

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"

Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames
For Each strValueName In arrValueNames
    oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
    Debug.Print strValueName
Next

Ну разве что убрать примечание в скобках.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх