Страницы: 1
RSS
Как вставить символ "замок" кодом VBA в ячейку., Каким кодом VBA я могу вставить эти символы?
 
Добрый день!

В книге-примере в ячейке А1 и А2 в ячейках вставлены символы - замок закрытый и замок открытый.
Пытаюсь расшифровать - какой код у символа командами Asc, AscB, AscW - они не определяют.
Получается что командами Chr, ChrB, ChrW - я вставить эти замки не могу. Других команд не знаю.

Каким кодом VBA я могу вставить эти символы  
Работать надо не 12 часов, а головой.
 
chrw(57846)
e1f6
и
chrw(57847)
e1f7
и конечно не забыть шрифт нужный
По вопросам из тем форума, личку не читаю.
 
у Вас отличная подпись к сообщениям, осталось начать ее использовать в быту...
(думаете БМВ родился со знанием кодов этих символов?)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Добрый день!

У меня не получается(
результат на картинке (или в файле-примере).

В ячейку вставляется знак вопроса, вместо замка. [A7] = ChrW(57846)

Возможно, вы скажете, что нужен шрифт правильный, но
1) если я копирую значок из ячейки, и вставляю, то никакой шрифт менять не требуется.
2) если я поменяю шрифт, то ChrW(57846) & " замок" - слово замок, наверное, исказится, т.к. буквы превратятся в значки (я так думаю)
3) на всякий полезно было бы знать - какой все-таки шрифт?
4) если все-таки ChrW - то, почему AscW на эти значки выдает -10179

e1f6, e1f7 - в связке с ключевым словом VBA нагуглить ничего не удалось. [A9] = ChrW("e1f6") - выдает ошибку.


 
Изменено: Leanna - 06.05.2018 10:44:28
Работать надо не 12 часов, а головой.
 
Как все-таки вставить такой замок в ячейку?
Ведь копированием, же вставляет?
Работать надо не 12 часов, а головой.
 

Leanna
Видимо или не читаете или не хотите читать что вам пишут. #2

Код
Sub Locked()
With Cells(1, 1)
.Value = ChrW(57846)
.Font.Name = "Segoe UI Symbol"
End With
End SubSub unLocked()
With Cells(1, 1)
.Value = ChrW(57847)
.Font.Name = "Segoe UI Symbol"
End With
End Sub

По вопросам из тем форума, личку не читаю.
 
Откуда я должна была это знать, если с этим шрифтом не сталкивалась? Научите?
#2 пишет "ноль" по сути. Я что, из космоса должна брать информацию? Возник вопрос - я спрашиваю. А его выпад мне не ясен. Предварительно я гуглила.

Ваш вариант с изменением шрифта работает, спасибо.  Что такое e1f6 и e1f7? Из вашего первого сообщения?


Но все-таки - что это за значки в [A2] и [A3]? Это не то же самое, что и ChrW(57846).  В них, что удобно, не требуется устанавливать специальный шрифт.
Их только копированием можно использовать? Через код никак не вставить?
Работать надо не 12 часов, а головой.
 
БМВ,  в 2010/32 код не работает.
Т.е. не то, чтобы совсем не работает, но замки не вставляет.

Leanna, замки другие, но работает
Код
Sub Кнопка_символ()
    locker = Chr(207)
    unlocker = Chr(208)
    [a7].Font.Name = "arial"
    [b7].Font.Name = "arial"
    [a7] = locker & "-открыто"
    [b7] = unlocker & "-закрыто"
    [a7].Characters(1, 1).Font.Name = "Webdings"
    [b7].Characters(1, 1).Font.Name = "Webdings"
End Sub
Изменено: RAN - 06.05.2018 11:49:09
 
Цитата
Leanna написал:
Откуда я должна была это знать, если с этим шрифтом не сталкивалась? Научите?
Достаточно было посмотреть формат ячейки исходного файла.
Цитата
Leanna написал:
e1f6 и e1f7
Это шестнадцатеричное 57846 и 57847

Цитата
Leanna написал:
Но все-таки - что это за значки в [A2] и [A3]? Это не то же самое, что и ChrW(57846).  
может и не требуется но в исходном файле именно этот шрифт.
Цитата
Leanna написал:
Через код никак не вставить?
см. #8 Там более распространенный шрифт, но еще раз , у вас именно был Segoe UI Symbol
По вопросам из тем форума, личку не читаю.
 
У меня там два символа показывает, так работает на открытый и закрытый (ниже) замок:
Код
Sub tt()
    Selection = ChrW(-10179) & ChrW(-8941)
    Selection(2) = ChrW(-10179) & ChrW(-8942)
End Sub

И шрифт не особо важен, на исходном Calibri тоже есть корректный результат.

P.S. Искал так:
Код
Sub ttt()
    Dim t$, i&, x, s$
    t = Selection
    MsgBox Len(t)
    For i = 1 To 2
        x = AscW(Mid(t, i, 1))
        Debug.Print x
        s = s & ChrW(x)
    Next
    Selection.Offset(, 1) = s
End Sub
Изменено: Hugo - 06.05.2018 16:21:25
 
ГОЛОВА!
Была мысля проделать подобное, но.....

PS и =ДЛСТР(A2) = 2

PPS Мне вообще удалось найти замок только с кодом 1F512
=ШЕСТН.В.ДЕС(1F512) = 128274
ChrW(128274) вообще "птица Рух"
Изменено: RAN - 06.05.2018 17:36:21
 
Там в примере в какой-то ячейке ещё и пробел после замка кажется был, качать/проверять уже не буду...
 
RAN,
 
По вопросам из тем форума, личку не читаю.
 
Дасс! Пулемета я вам не дам.
При моих скромных познаниях языка гаденышей, могу предположить, что
Private Use Area == область личных символов
Так вот, у меня в этой области ровно одна строка (вкл. 2 первых ячейки строкой ниже)
 
Здравствуйте, коллеги!
Пример Михаила (БМВ) не эквивалентен примеру из #1 (символы другие, хотя и внешне схожи) и привязан к конкретному шрифту.
Пример Игоря (Hugo) выдает те же символы, что в #1, и отображается корректно в большинстве шрифтов.
Для работы с символами Unicode (в том числе, с "суррогатными парами", как в нашем случае) в Excel 2013+ есть функции рабочего листа UNICODE и UNICHAR.
Владимир
 
sokol92, ДА, Владимир, я немного поспешил, даже тут https://unicode-table.com/en/search/?q=Lock это 128274 и 128275.
По вопросам из тем форума, личку не читаю.
 
Вау! Hugo, спасибо! Это именно оно!)))
Я и понятия не имела о том что бывают такие матрешки!
Работать надо не 12 часов, а головой.
 
В свою переменную не заглянули? А там два "??"
Страницы: 1
Наверх