Я написал небольшую программу в MS Word VBA, которая прекрасно работает на всех компьютерах с Windows, на которых я ее развернул. Однако на компьютерах под управлением macOS возникают проблемы:
В коллекции я всегда сохраняю массив как значение и присваиваю ему уникальный ключ. Эти массивы всегда содержат последовательность (например, 'a \') с индексом 0 и до 5, объединяющих диакритические знаки. Эти диакритические знаки, такие как акцентная могила (например, на à), сохраняются с помощью их числового значения, в данном случае «0300».
Если пользователь открывает форму my user через CTRL + SPACE и вводит \ в поле поиска ('Crea'), в списке ('Risultati') отображаются возможные совпадения этой последовательности, в данном случае à. Это достигается циклическим просмотром коллекции, проверкой последовательности по индексу 0 с записью поиска и, если она соответствует, функция listbox.AddItem ChrW("&H" & collection(1)) & ChrW("&H" & collection(2)
объединяет эти диакритические знаки с соответствующим символом и отображает их в списке. Также последовательность символов отображается в поле «секвенза», если вы выделяете символ из списка. После этого пользователь может решить, какой символ из списка будет вставлен. Я ссылаюсь на выбранный индекс списка и вставляю выделение в документ .
Selection.InsertBefore listbox.Column(0, listbox.ListIndex)
Теперь для забавной части:
Некоторые символы списка не скомпонованы правильно, хотя при вставке верны .
Например, e? объединяется в списке в ḗ, хотя это должно быть ẹ. Он вставлен правильно (как though), хотя.
Теперь точно такой же код на машине с Windows действительно правильно комбинирует символ:
Также после сужения критериев поиска в поле «crea» символы отображаются корректно: см.
исопоставленный символ два
Я понятия не имею, что вызывает такое поведение, и ценю каждое предложение.