Не удается создать экземпляр NotesUIWorkspace из VBA (Word)

Исходная ситуация: у меня есть приложение Notes, которое использует MS Office 2000 под Windows XP. Новая ситуация должна быть MS Office 2010 под Windows 7. IBM Notes — 8.5.3FP3. Старый использует шаблон VBA для связи с Notes, который работает правильно. За один раз создается объект Notes.NotesUiWorkSpace для открытия документа, перехода к элементу форматированного текста, выбора всего содержимого (отформатированного) и копирования в буфер обмена. Затем содержимое буфера обмена вставляется в документ Word через VBA. Это прекрасно работает. Тот же код во второй среде больше не работает. Я заметил, что объект Notes.NotesUIWorkSpace не может быть создан в VBA. Ни ошибок, ни подсказок. Только ошибка времени выполнения, когда я позже ссылаюсь на объект рабочей области.

Вот фрагмент кода:

' this is a profile document which is filled correctly
Call prof.Save(True, True)
Call prof.replaceItemValue("Form", "Profile")
' setting up the ui
dim WS as Object
set WS = CreateObject("Notes.NotesUiWorkSpace")
Set uiprof = WS.EditDocument(True, prof)

' Set uiprof = WS.currentDocument
If uiprof.editMode Then Call uiprof.gotofield("RT")
Call uiprof.SelectAll
Call uiprof.Copy
Call uiprof.Close
' later on the clipboard will be pasted into the word document

Любые идеи, что может быть причиной здесь? Я настраиваю среду с XP, MS Office 2010 и Notes сегодня вечером, чтобы проверить, что это не вызвано Windows 7.


person Oliver Busse    schedule 09.04.2013    source источник
comment
Единственное решение — сохранить RTF-контент как MIME/HTML, сохранить его в другом поле документа и прочитать через VBA. Вставьте содержимое в документ и позвольте Word выполнить форматирование.   -  person Oliver Busse    schedule 24.04.2013


Ответы (1)


Если компьютер с Windows 7 64-разрядный, взгляните на ответы здесь. Обратите внимание, что они относятся к классам COM (lotus.), а вы используете классы OLE (notes.), но я считаю, что проблема 64/32-разрядных версий применима к обоим.

person Richard Schwartz    schedule 09.04.2013
comment
Хорошее замечание, никогда об этом не задумывался. Моя машина 64-битная, НО машины клиентов 32-битные. Я искал вариант в редакторе VBA в Word, где установить параметр для компиляции с 32-битной версией - ничего не нашел. Может быть, эта проблема 32/64 не беспокоит чистый VBA с OLE? - person Oliver Busse; 10.04.2013