Я программирую VBA (7.0) в Excel 2010 и пытаюсь создать макрос, который изменит строковую переменную (содержащую кандзи) на составляющие хираганы. Насколько я могу судить, для этого не существует специальных методов VBA. Следовательно, я предполагаю, что способ сделать это - попытаться имитировать кнопку [henkan] 「変 換」 на японской клавиатуре.
Для тех, кто не привык к японской клавиатуре, кнопка 「変 換」 используется для преобразования составляющей хираганы по мере ее написания в состав кандзи (аналогично выделение существующего текста и нажатие на него предложит варианты изменения его на другие кандзи, а также его составляющие. Хирагана или Катакана). Нажатие кнопки вызовет список из IME, в котором перечислены возможные варианты выбора для вашей записи.
Я взял из здесь и здесь, что скан-код рассматриваемой кнопки - 79.
Соединение 1 + 1 (получение 3) и использование приведенного ниже кода не дали никаких результатов.
Private Sub test_Click()
Sheets("Main").Range("A1").Select '<--- A1 contains a Kanji Compound
Application.SendKeys (79) '<--- Both (79) and ("79") were tried
End Sub
Я заметил, что есть следующие функции VBA (которые могут в конечном итоге помочь с конечным результатом), но они, похоже, не помогают в ситуации.
- StrConv (может преобразовывать хирагану ‹> катакана, но не кандзи)
- Phonetics
- .Add (Can add the reading of the Kanji (as Furigana) however this requires user input and is not automatic).
- .CharacterType (возвращает или задает тип фонетики; хирагана, катакана и т. Д.)
- IME (в основном используется для установки правил ввода)
Сотрудник предположил, что мне может потребоваться взглянуть на IME API, чтобы, во-первых, увидеть, могу ли я получить к нему доступ (разрешения с API), а во-вторых, позволит ли мне узнать способ доступа к ключу. Однако мой опыт работы с API (особенно IME) равен нулю.
Существует ли специфичный для VBA способ эмуляции процесса кандзи -> хирагана (требуется только одностороннее преобразование кандзи в хирагану)?
В противном случае, существует ли процесс, который мог бы отправить клавишу 「変 換」 и выбрать вариант хираганы?
Application.SendKeys ("{CONVERT}")
? - person Dirk Reichel   schedule 18.11.2015{VK 23}
- person Dirk Reichel   schedule 18.11.2015