Тема: VBA: как в Word в VBA узнать коды символов 224-231 и 232-239
Есть шахматный шрифт "Chess Merida". Там есть символы рамки вокруг доски. Тут речь о нижней и левой рамках. Рамки могут быть с подписями и без. "Подписи" -- т.е. когда внизу под доской по горизонтали идут буквы, обозначающие вертикали (A,B,…,H), а слева от доски -- идут цифры, обозначающие горизонтали (1,2,…,8).
Коды символов (если посмотреть в Insert > Symbol)
нижняя рамка без подписи : 40
левая рамка без подписи : 36
нижняя рамка (т.е. с буквами) A-H : 232-239
левая рамка (т.е. с цифрами) 1-8 : 224-231
Теперь, собственно, непонятки. Допустим, я хочу через VBA вставить символ с неким кодом:
нижняя рамка с буквой A:
Selection.InsertSymbol _
Font:="Chess Merida", _
CharacterNumber:=232, _
Unicode:=False
левая рамка с цифрой 1 (единица):
Selection.InsertSymbol _
Font:="Chess Merida", _
CharacterNumber:=224, _
Unicode:=False
Тут всё работает нормально. Аналогично будет и для остальных рамок с буквами/цифрами, только, соответственно, надо использовать их коды.
А вот если я пытаюсь через VBA узнать код сивола такой буквенно-цифровой рамки (т.е. символы с кодами 224-231 и 232-239), то получается облом:
Выделим символ и выполним в окне Immediate:
?AscB(Selection.Characters(1))
для всех этих символов будет почему-то выдано 40
AscW (если использовать его вместо AscB) тоже выдает 40
При этом для остальных символов -- например, белая пешка на чёрной клетке (80), черный король на черной клетке (76), в том числе и упомянутые выше рамки без подписи (40, 36) -- AscB выдаёт правильные коды. В чём тут дело? Как мне в VBA узнать коды для символов 224-231 и 232-239?




