|     0
            - 02.02.2015 - 23:37
           |      
                    В Delphi7 выполняется обычный код: pchDDECommand := StrAlloc(Length(sDDECommand) + 1); StrPCopy(pchDDECommand, sDDECommand); sDDECommand заполнена командами VisualBasic, в отладке хорошо видно, сто начинается строка со слов WordBasic.FileOpen !!! Запускаем макрос в Word ddeclientCaptain.ExecuteMacro(pchDDECommand, false) и видим ошибку: ![]() Что за мистические dim в начале? Кто-нибудь сталкивался с подобным? Хоть в каком направлении копать? :-)  |    |  
|     1
            - 03.02.2015 - 00:49
           |     
			
			
                Приблизительно понятно, в чём дело... Дело в двойных кавычках. Где-то в параметрах команды WordBasic.Insert встретились двойные кавычки - и для стали "переменными"... Хорошо, двойные кавычки " мы удвоим. А угловые кавычки вообще не отображаются в конечном документе вместе со своим содержимым! А как же тогда угловые кавычки «» внести в параметры команды WordBasic.Insert?  |    |  
|     2
            - 03.02.2015 - 09:05
           |  Для справки: dim в VisualBasic обозначает объявление локальной переменной. |   |  
|     3
            - 03.02.2015 - 13:49
           |     
			
			
                2225777 - на скрине в 14-й строке подсвечен не ASCII-смовол, обозначенный знаком ? - это ошибка. Возможно она следствие грубого копирования текста из чего-то непотребного типа Блокнота... Блокнот - самоя вредная программа и привычка для программистов.  Поставьте в Word VBA IDE нормальный простой пропорциональный шрифт (Courier New Cyr) - и будете легко отличать парные, косые и типографские кавычки в тексте кода. У вас в коде ВЕЗДЕ не те кавычки, допустимы ТОЛЬКО простые - " Обычная типографская кавычка - " - CHR(34) Если позарез нужны в параметры команды WordBasic.Insert всунуть разнонаправленные "парные" кавычки, то это коды 147/148, а также "русские"-умолчальные в Word, коды 171, 187. Кстати, парные кавычки даже в самом Word-е неправильно разворачиваются в целом ряде случаев. Поэтому для серьезных дел от них отказываются. Это такой же маразм, как писать инициалы перед ФИО, в то время как везде в компьютерной обработке наоборот. Стандартописателям обоих полов надо вырвать парные органы, чтобы не плодили свои стандарты...  |    |  
|     4
            - 03.02.2015 - 17:13
           |     
			
			
                2 economist: Спасибо большое за Ваши дельные советы! :-) К сожалению, я сама не управляю кавычками именно в среде VisualBasic - код передаётся из Delphi7, а в Delphi - обычная запись: sDDECommand := '[FileOpen "' + sSelectedDoc + '" ][StartOfDocument]' + ... '[EditBookmark .Name = "clientsName02", .Goto][Insert "' + sClnName + '"]' + '[ViewPage]' + sCommandDate + sCommandFileSave; То есть, просто ввожу в строке, заключаемой в одинарные кавычки, - двойные кавычки с клавиатуры. А насчёт символов 171 и 187 вот на такой код из Delphi7 str:= StringReplace(str, '«', '" + Chr(171) + "', [rfReplaceAll]); str:= StringReplace(str, '»', '" + Chr(187) + "', [rfReplaceAll]); товарищ VisualBasic сказал вот это :-)       |    |  
|     5
            - 03.02.2015 - 17:16
           |     
			
			
                На скрине не видно подсвечивание ошибки: это Chr___(171) и Chr___(187)... Как же тогда написать, чтобы функция Chr перестала быть неопределённой? :-)  |    |  
|     6
            - 05.02.2015 - 10:40
           |     
			
			
                Мдя, вот изврат-то какой в исполнении программистов: вставлять кодом на Delphi код VBA, и при этом еще и парсить его криво. Впрочем, дельфийских поделок вокруг столько, что проще переделать систему сбора заявок на чистом VBA (я бы так поступил). У вас не работает код потому что неправильно вставился код функций - нельзя ____ ! Просто Chr(171) и Chr(187) И еще раз подумайте - нахрена вам парность кавычек? Что за антиинформационный перфекционизм? Ставьте обычные в выражении вот так: "Адрес: " & "Ул. Мира, д. 5, корпус ""б""" Получится вот так: Адрес: Ул. Мира, д. 5, корпус "б" И еще - замените все косые кавычки в коде на ровные, как зубы у зайца - " И попробуйте в Delphi str:= StringReplace(str, '«', '""', [rfReplaceAll]); или str:= StringReplace(str, '«', '"', [rfReplaceAll]);  |    |  
|     7
            - 05.02.2015 - 10:43
           |     
			
			
                Чтобы видеть в Форуме код как код, моноширинным грифтом - его надо заключить в теги: Код:  
  |    |  
|     8
            - 05.02.2015 - 10:50
           |     
			
			
                теги code /code все в квадратных скобках  |    |  
 Интернет-форум Краснодарского края и Краснодара |