Ну что сразу приходит на ум, так это использование Document Variables….
Значит, процедура в codemodule DrawPicture:
Public Sub InsertPicture()
MsgBox ActiveDocument.Variables(‘varPathToBMP’).Value
End Sub
И как ты понял, код в VB:
Private Sub Command1_Click()
Dim appWord As Word.Application
Dim docWord As Word.Document
Set appWord = New Word.Application
Set docWord = appWord.Documents.Add(Template:=’Focuments and SettingsAdministratorApplication DataMicrosoftTemplatesTest1.dot’)
‘ TODO: add check for already exist variable
docWord.Variables.Add Name:=’varPathToBMP’, Value:=’C:TEMPIncom.bmp’
appWord.Run MacroName:=’InsertPicture’
appWord.Quit
Set appWord = Nothing
End Sub
Это должно работать и с 97…
Я думаю, обработчик ошибок и прочее сделаешь сам…
Удачи..
08.07.13 — 15:36
onprint = поле ввода.значение;
ТекстМакроса = «Sub VBAL1()
| Application.PrintOut FileName:=»»»», Range:=wdPrintAllDocument, Item:= _
| wdPrintDocumentContent, Copies:=1, Pages:=???, PageType:=wdPrintAllPages, _
| ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
| False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
| PrintZoomPaperHeight:=0
| End Sub»;
Word = Новый COMОбъект(«Word.Application»);
Word.Documents.Open(«d:/1.docx»);
Word.Application.Visible=0;
VB = Word.VBE.ActiveVBProject.VBComponents;
Cnt = VB.Count();
VB.Add(1);
VB.Item(Cnt+1).CodeModule.InsertLines(1,ТекстМакроса);
Word.Application.Run(«VBAL1»);
автор, иди учись программир
Как передать значание поля в параметр Pages?
пробывал Pages:=»+onprint+»,
Pages:=»»»+onprint+»»»,
Pages:=»+символ(34)+onprint+символ(34)+».
Во всех случаях печатает все страницы, невзирая на занчанеие.
ps. пробывал печатать и без макроса, не взлетает.
примерно так: msword.printout(,,,,,,,,onprint,)
1 — 08.07.13 — 15:38
1) Включи запись макроса
2) Напечатай нужные страницы
3) Останови запись
4) Зайди в макрос и посмотри параметры Pages
2 — 08.07.13 — 15:49
(1) я делал это. Если, например печатать 1,6-10 страницы, то в макросе pages=»1,6-10″.
В 1с Пробывал передавать в макрос и 1,6-10, и «1,6-10». Печатает все страницы не взирая на это.
ТекстМакроса = «Sub VBAL1()
| Application.PrintOut FileName:=»»»», Range:=wdPrintAllDocument, Item:= _
| wdPrintDocumentContent, Copies:=1, Pages:=»+символ(34)+onprint+символ(34)+», PageType:=wdPrintAllPages, _
| ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
| False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
| PrintZoomPaperHeight:=0
| End Sub»;
3 — 08.07.13 — 15:53
а на msdn зайти?
4 — 08.07.13 — 15:54
Вместо wdPrintAllDocument надо wdPrintRangeOfPages.
Для восьмёрки, кстати, извращение со вставкой кода не нужно.
А при вызове методов для необязательных параметров нужно передавать Неопределено.
5 — 08.07.13 — 15:54
да и встроенный хелп неплохой
6 — 08.07.13 — 15:55
(4) thank you!
7 — 10.07.13 — 09:08
Еще вопрос по этой теме, вот в этом куске:
VB = MsWord.Application.VBE.ActiveVBProject.VBComponents;
Cnt = VB.count();
VB.Add(1);
VB.Item(Cnt+1).CodeModule.InsertLines(1,ТекстМакроса);
MsWord.Application.Run(«VBAL1»);
Состояние(«Отключение от Word»);
MsWord.Quit(Ложь);
MsWord = Неопределено;
Нету стабильности, то печатает все хорошо, то не обнаружен метод count(), то не обнаружен метод item(). От чего это может зависеть?
ps. office 2010
8 — 10.07.13 — 09:12
И еще, можно ли средствами 1с передать параметр wdPrintRangeOfPages в printout? что-бы не мучатся с макросами?
9 — 10.07.13 — 09:17
от ActiveVBProject
10 — 10.07.13 — 09:20
(9) подробнее, если не сложно
11 — 10.07.13 — 09:22
(8)wdPrintRangeOfPages = 4
12 — 10.07.13 — 09:24
(10)ActiveVBProject соддержит указатель на активный VBProject … который тупо может просто отсуствовать
13 — 10.07.13 — 09:52
(11) Пишет:
Ошибка при вызове метода контекста (PrintOut): Типы не совпадают (12)
Вот так пытаюсь передать:
MsWord.PrintOut(0,неопределено,4,неопределено,неопределено,неопределено,неопределено,1,»1-2″,неопределено,False,True);
третий параметр пробывал и 1,2,3,4,5,6.
14 — 10.07.13 — 09:57
а так?
MsWord.PrintOut(0, , 4, , , , , 1, «1-2», , False, True);
15 — 10.07.13 — 10:00
(14) получилось! спасибо!
skunk
16 — 10.07.13 — 10:03
(15)для необязательных параметров в функции и процедуры ничего не передовай … а «неопределено» — это уже что-то
На чтение 2 мин Опубликовано 15.10.2015
В прошлых статьях мы показывали, как настраивать дополнительные свойства и создавать пользовательские свойства в документе Word. Эти свойства можно вставить при помощи экспресс-блока Поле (Field). Что полезно, когда есть слова, фразы или значения, которые часто используются в документах.
Если слово, фразу или значение, которые многократно используются в документе, планируется изменять в будущих редакциях этого документа, то использование встроенного или пользовательского свойства будет весьма полезным. Вам достаточно изменить значение свойства только в одном месте, чтобы оно изменилось сразу во всём документе.
Чтобы вставить значение встроенного или пользовательского свойства, поставьте курсор в то место, куда его нужно вставить, и откройте вкладку Вставка (Insert).
Примечание: При вставке пользовательского свойства в документ, вставлено будет только его значение. Если Вы хотите дополнить (расшифровать) значение именем свойства, введите нужный текст прежде, чем вставлять само значение.
В разделе Текст (Text) вкладки Вставка (Insert) нажмите кнопку Экспресс-блоки (Quick Parts).
Примечание: Подписи этих кнопок могут не отображаться, когда окно Word открыто недостаточно широко. Если Вы не видите подпись кнопки, найдите иконку, указанную курсором на изображении ниже.
В появившемся меню нажмите Поле (Field).
В выпадающем списке Категории (Categories) выберите О документе (Document Information).
В списке Поля (Field names) кликните по DocProperty. В разделе Свойства поля (Field Properties), который расположен по центру диалогового окна, под заголовком Свойство (Property) появится список всех доступных свойств документа (как встроенных, так и добавленных Вами). Выберите из списка пользовательское свойство, которое хотите добавить в документ, и нажмите ОК.
Значение будет вставлено туда, где находится курсор.
Изменив значение пользовательского свойства, необходимо обновить поля, вставленные в документ, чтобы они отобразили это изменение. Для этого нужно выделить все поля в документе (или полностью весь документ) и нажать клавишу F9.
Оцените качество статьи. Нам важно ваше мнение:
Содержание
- — Что такое переменная в Word?
- — Как вставить переменную?
- — Можете ли вы вставить данные в документ Word?
- — Какие бывают 3 типа переменных?
- — Какое корневое слово переменной?
- — Как использовать переменную в операторе вставки?
- — Какие типы переменных существуют в SPSS?
- — Как установить переменную в SQL?
- — Как объединить данные Excel в документ Word?
- — Как мне поместить данные Excel в документ Word?
- — В каком формате хранится файл Microsoft Word?
- — Как определить переменную?
- — Какие 5 переменных?
Когда слово сохраняется в переменной на пустом месте, оно называется строковой переменной. * Переменная — это область памяти, предназначенная для хранения значения во время выполнения программы. … Для хранения слова используется переменная особого типа, известная как строковая переменная.
Переменная служит как заполнитель для информации, которая может часто меняться. Использование переменных в исходных документах позволяет быстро и легко контролировать содержимое созданного вами вывода. … Значение переменной в исходном документе не изменяется.
Как вставить переменную?
Вставка переменной
- В окне просмотра данных щелкните имя столбца справа от того места, куда вы хотите вставить новую переменную.
- Теперь вы можете вставить переменную несколькими способами: Щелкните Правка> Вставить переменную; Щелкните правой кнопкой мыши имя существующей переменной и выберите «Вставить переменную»; или.
Можете ли вы вставить данные в документ Word?
Встроенный объект
Идти Вставить> Текст> Объект. Выберите «Создать из файла»> «Обзор» и найдите файл, который хотите вставить в документ Word. Выберите один из следующих вариантов: Чтобы добавить файл в качестве связанного объекта, выберите «Связать с файлом», а затем нажмите «ОК».
Какие бывают 3 типа переменных?
Эти изменяющиеся величины называются переменными. Переменная — это любой фактор, признак или условие, которые могут существовать в разных количествах или типах. В эксперименте обычно используются три типа переменных: независимый, зависимый и управляемый.
Какое корневое слово переменной?
переменная (прил.
конец XIV в., людей, «склонные к изменению, непостоянные», от старофранцузского переменного «разнообразный, изменчивый, непостоянный», от позднелатинского variabilis «изменчивый», от variare «изменяться» (см. варианты).
Как использовать переменную в операторе вставки?
Синтаксис для присвоения значения переменной SQL в запросе SELECT следующий: @ var_name: = значение , где var_name — это имя переменной, а значение — это значение, которое вы получаете. Переменная может использоваться в последующих запросах везде, где разрешено выражение, например, в предложении WHERE или в инструкции INSERT.
Какие типы переменных существуют в SPSS?
Типы переменных
- Числовой. Числовые переменные, как и следовало ожидать, имеют значения данных, которые распознаются как числа. …
- Нить. Строковые переменные, которые также называются буквенно-цифровыми или символьными переменными, имеют значения, которые обрабатываются как текст. …
- Запятая. …
- Точка. …
- Научная нотация. …
- Дата. …
- Доллар. …
- Пользовательская валюта.
Как установить переменную в SQL?
Переменные в процедурах SQL определяются используя оператор DECLARE. Значения могут быть присвоены переменным с помощью оператора SET или оператора SELECT INTO или в качестве значения по умолчанию при объявлении переменной. Переменным можно присвоить литералы, выражения, результат запроса и специальные значения регистров.
Как объединить данные Excel в документ Word?
В документе Word выделите поле, которое вы хотите заполнить данными из Excel. На вкладке «Рассылки» нажмите кнопку «Вставить поле слияния», выпадет список заголовков столбцов в сохраненном документе Excel (например, название компании и т. д.). Выберите соответствующее поле, которое вы хотите объединить, и нажмите «Вставить».
Как мне поместить данные Excel в документ Word?
Чтобы вставить связанные данные Excel в таблицу Word:
- Откройте исходную книгу Excel.
- Выберите данные, которые вы хотите поместить в файл Word.
- Нажмите Ctrl + C или щелкните правой кнопкой мыши и выберите Копировать в раскрывающемся меню.
- Откройте целевой документ Word.
- Поместите точку вставки в то место, где должны отображаться связанные данные Excel.
В каком формате хранится файл Microsoft Word?
Форматы файлов, поддерживаемые в Word
Расширение | Название формата файла |
---|---|
.docx | Документ Word |
.docx | Строгий документ Open XML |
.dot | Шаблон Word 97-2003 |
.dotm | Шаблон Word с поддержкой макросов |
Как определить переменную?
Легкий способ представить себе независимые и зависимые переменные: когда вы проводите эксперимент, независимая переменная — это то, что вы изменяете, а зависимая переменная — это то, что изменяется из-за этого. Вы также можете рассматривать независимую переменную как причину, а зависимую переменную как следствие.
Какие 5 переменных?
Типы переменных
- Независимые переменные. Независимая переменная — это особая характеристика, которую другие переменные в вашем эксперименте изменить не могут. …
- Зависимые переменные. …
- Промежуточные переменные. …
- Модерирующие переменные. …
- Контрольные переменные. …
- Посторонние переменные. …
- Количественные переменные. …
- Качественные переменные.
Интересные материалы:
Как вы измеряете величину магнитного поля?
Как вы измеряете внутреннюю температуру обмотки?
Как вы изобразите очевидное падение на стереосигналах?
Как вы кадрируете кого-нибудь на картинке?
Как вы кадрируете в FastStone?
Как вы каракули?
Как вы каждый раз побеждаете в «Монополии»?
Как вы каждый раз побеждаете в Mortal Kombat?
Как вы храните маленькие кусочки игрушек?
Как вы храните мелкие безделушки?
← →
ANB ©
(2007-01-24 18:22)
[0]
Никак не получается вызвать макрос с параметром. Убираю параметр из басика и вызова — работает. Добавляю параметр. Из самого басика подпрограмма вызывается. Из делфы — пытаюсь задать строку с именем, в скобках число — не находит макрос. Из списка макросов в ворде тоже подпрограмма пропадает.
← →
jack128 ©
(2007-01-24 18:54)
[1]
Как конкретно вызываешь то макрос??
← →
umbra ©
(2007-01-24 19:02)
[2]
в ворде, насколько я знаю, нельзя выполнить произвольную функцию с параметрами. Только процедуру. В экселе можно
Надо, чтобы процедура брала параметр откуда-нибудь.
← →
ANB ©
(2007-01-25 12:23)
[3]
> Как конкретно вызываешь то макрос??
Млин. Компонентой TXLReport. У нее свойство есть MacroBefore. Заполняешь строку именем макроса и она сама его вызывает. Пока не пытаешься параметры передавать — все работает. Исходников этой компоненты нету. Выкинуть не могу — ее надо юзать — там жуткий проброс был сделан, чтобы хоть ее зацепить. Писать с нуля — проблематично по времени.
Одна наша программистка как то умудрилась передать одно число. А вот как она этого добилась — сама не понимает. Пишу такой же код — ни фига не работает. И сама она свой подвиг повторить не может.
← →
umbra ©
(2007-01-25 13:10)
[4]
> в ворде, насколько я знаю, нельзя выполнить произвольную
> функцию с параметрами.
это в 97 нельзя, а в тех, что поновее — можно. Там есть метод Application.Run(macroname, varg1, varg2, ......., varg30)
macroname — это строка типа «mydoc.doc!mymodule.mymacro»
Компонент наверняка его вызывает. По идее, св-ву MacroBefore надо присвоить значение наподобие » "mydoc.doc!mymodule.mymacro", myarg
«
← →
jack128 ©
(2007-01-25 14:39)
[5]
ANB © (25.01.07 12:23) [3]
Заполняешь строку именем макроса и она сама его вызывает. Пока не пытаешься параметры передавать — все работает
У мя всё работает. В обработчике OnMacro параметры спокойно передаются
PS Исходники компонента есть. Если что, стучись на jack128_ДругЧеловека_mail.ru