Срочно нужна помощь по Word - подстановка определённого символа в определённое место
Selection.TypeText Text:="цукцукцу"
Selection.MoveLeft Unit:=wdCharacter, Count:=19
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveUp Unit:=wdLine, Count:=2
Selection.TypeText Text:="вцфывфыв"
Selection.MoveDown Unit:=wdLine, Count:=5
Selection.TypeText Text:="вфывфывфы"
как видите, нет никаких упоминаний о позиции символа, либо ячейке таблицы. Что делать? Как быть? Гибну!!! На этот вопрос, к сожалению, точно в ближайшее время не смогу сам найти ответа - нет литературы. Работа с Excel нежелательна.:{
В тексте анкеты сделаешь такие вставки:
$$ответ_на_вопрос_1$$
А дальше обычным Ctrl+H будешь менять их на реальные ответы.
Как запихнуть Ctrl+H в макрос, посмотришь в автозаписи макросов.
Я тебе советую так:
В тексте анкеты сделаешь такие вставки:
$$ответ_на_вопрос_1$$
А дальше обычным Ctrl+H будешь менять их на реальные ответы.
Как запихнуть Ctrl+H в макрос, посмотришь в автозаписи макросов.
Так я уже делал когда-то, но это-криво немного. К тому же, этим шаблоном могут воспользоваться кто-нибудь, а потом сохранить его покоцанным (так уже было).:{ Потом, естественно, пойдёт кракозябры всякие. Хотя, думаю, если сделаю сам шаблон Read-only и включу его, как пришаренный, в проект, может что-то и выйдет... При "поиск-замена" проблема с защитой, сами понимаете... Юзеры же обладают длинными ручками...:{
Беда ещё в следующем: одна из анкет будет печататься с подложкой. Машины у пользователей слабенькие. Поэтому, если каждый раз перезагружать шаблон, пользователи повесятся. Хочу один раз загрузить шаблон в память, а потом только менять значения в полях... Тут "поиск-замену" сделать уже проблематично будет:{
Вставить нужный текст на нужное место легко, если точно знать где это самое "нужное место".
А как ты собираешься определять "нужные места"?
Вставить нужный текст на нужное место легко, если точно знать где это самое "нужное место".
Я хочу в этих "нужных местах" создать либо поля, либо таблички Word'а, либо текстовые поля из графических объектов. А потом передавать туда текст. А вто как передать туда текст - не знаю. Макрос вразумительный ни по тому, ни по другому записать не удалось:{
я VBA использую в Excel, но когда-то собирал информацию из таблиц по файлам txt и doc.
Пользовался примерно таким методом
ActiveDocument.Tables(1).Cell(i, 1)
может тебе пригодится?
как видите, нет никаких упоминаний о позиции символа, либо ячейке таблицы. Что делать? Как быть?
я VBA использую в Excel, но когда-то собирал информацию из таблиц по файлам txt и doc.
Пользовался примерно таким методом
ActiveDocument.Tables(1).Cell(i, 1)
может тебе пригодится?
Да с Excel проблем-то нет. Меня интересует именно Word
судя по тому что я читал (сам не использовал) тебя спасет шаблон в формате XML.
XML не подойдёт - тяжёлый формат, а у пользователей слабые машины. Были бы мощьнее, я бы замену-вставку реализовал бы с перезагрузкой шаблона. Сейчас, вроде как, удалось накопать код позиционирования курсора в поле типа "Текст" из набора графики Word'а. Правда, пока не писал к этому ничего. Пока мучаюсь:{
XML не подойдёт - тяжёлый формат, а у пользователей слабые машины. Были бы мощьнее, я бы замену-вставку реализовал бы с перезагрузкой шаблона. Сейчас, вроде как, удалось накопать код позиционирования курсора в поле типа "Текст" из набора графики Word'а. Правда, пока не писал к этому ничего. Пока мучаюсь:{
Зачем тебе тогда заморачиваться с графикой Ворда, раз у юзеров машины слабые?
Документ делал в виде:
Фамилия: /family
Имя: /name
А дальше, зная порядковое расположение абзацев, заменял это на нужное:
Dim R1 As Range, R2 As Range
Set R1 = Doc.Paragraphs(1).Range
Pos = R1.Start + InStr(1, R1.Text, "/")
Set R2 = Doc.Range(Start:=Pos - 1, End:=R1.End - 1)
R2.Delete
R2.InsertAfter (NewText)
Зачем тебе тогда заморачиваться с графикой Ворда, раз у юзеров машины слабые?
А в чем же тогда делать? Нужно, чтобы анкеты были с подложкой, причём определённые подложки печатать, скорее всего, отдельно никто не станет. Нужно, чтобы прямо с ними печаталось. Cristal я использовать не могу, так как во-первых, время упущено, а, во-вторых, его просто у меня нет:{
А в чем же тогда делать? Нужно, чтобы анкеты были с подложкой, причём определённые подложки печатать, скорее всего, отдельно никто не станет. Нужно, чтобы прямо с ними печаталось. Cristal я использовать не могу, так как во-первых, время упущено, а, во-вторых, его просто у меня нет:{
Ну и сделай шаблон с подложкой. Подложка и заполнение анкеты - вещи не связанные...
Умеешь в Ворде подложку делать?
Ну и сделай шаблон с подложкой. Подложка и заполнение анкеты - вещи не связанные...
Умеешь в Ворде подложку делать?
В Ворде подложку? Я пока кладу на страницу рисунок, а на него кладу текстовые поля. Но, кстати, подложка всех проблем не решит - текст анкеты может быть написан на массе кракозябринских языков, поэтому он тоже, как подложка идёт, так как поддежка этих языков может не стоять у юзера. А заполняется анкета по-англицки и по-русски - с этим проблем нет. А как в Вроде сделать подложку? В экселе знаю, как, а в Ворде ещё не сталкивался с этим, поэтому не знаю.:{
В Ворде подложку? Я пока кладу на страницу рисунок, а на него кладу текстовые поля. Но, кстати, подложка всех проблем не решит - текст анкеты может быть написан на массе кракозябринских языков, поэтому он тоже, как подложка идёт, так как поддежка этих языков может не стоять у юзера. А заполняется анкета по-англицки и по-русски - с этим проблем нет. А как в Вроде сделать подложку? В экселе знаю, как, а в Ворде ещё не сталкивался с этим, поэтому не знаю.:{
1. Заходишь в колонтитулы: Меню/Вид/Колонтитулы
2. Вставляешь в верхний или нижний колонтитул нужную картинку.
3. Делаешь у картинки Обтекание=нет.
4. Закрываешь колонтитул.
1. Заходишь в колонтитулы: Меню/Вид/Колонтитулы
2. Вставляешь в верхний или нижний колонтитул нужную картинку.
3. Делаешь у картинки Обтекание=нет.
4. Закрываешь колонтитул.
А если 2 картинки - на 2 стороны листа?
А если 2 картинки - на 2 стороны листа?
Тогда без колонтитулов. Колонтитулы нужны только для того, чтобы на каждой странице повторяться.
А так просто берёшь рисунок, устанавливаешь у него Обтекание=Нет и Цвет Изображения = Подложка.
И все. Печатай посверху сколько душе угодно...
Тогда без колонтитулов. Колонтитулы нужны только для того, чтобы на каждой странице повторяться.
А так просто берёшь рисунок, устанавливаешь у него Обтекание=Нет и Цвет Изображения = Подложка.
И все. Печатай посверху сколько душе угодно...
Ну, в принципе, как вариант, можно сделать лист длинной 2 А4 и туда сунуть подложку. Но тут опять встаёт вопрос, как же в нужные места на листе нарисовать символы?
Ну, в принципе, как вариант, можно сделать лист длинной 2 А4 и туда сунуть подложку. Но тут опять встаёт вопрос, как же в нужные места на листе нарисовать символы?
Опять встает вопрос, что такое нужные места?
Варианты как найти нужное место:
1. Известны номер абзаца и номер символа.
2. Известно что-то уникальное, что там напечатано (типа $$ответ_на_вопрос_1$$)
Или какие-то комбинации этих двух способов (например в моем случае (приведен десятком постов выше), я знал номер абзаца и уникальный в этом абзаце символ "/".
Опять встает вопрос, что такое нужные места?
Варианты как найти нужное место:
1. Известны номер абзаца и номер символа.
2. Известно что-то уникальное, что там напечатано (типа $$ответ_на_вопрос_1$$)
Или какие-то комбинации этих двух способов (например в моем случае (приведен десятком постов выше), я знал номер абзаца и уникальный в этом абзаце символ "/".
Нужные места, это поля типа Текстовое поле (из панели рисования), либо ячейка таблицы Word, либо поле из меню "вставка поля" - с чем удобнее работать. Я планирую в местах ответов на вопросы "выложить" эти объекты и в них из программы писать ответы. Беда в том, что не знаю, как их проинициализировать.:{
Да с Excel проблем-то нет. Меня интересует именно Word
Так ActiveDocument.Tables(1).Cell(i, 1)
это из VBA Word'а.
В принципе то, что в Excel Лист..!.Cell(i, 1)
в Word'е Tables(..).Cell(i, 1)
Так ActiveDocument.Tables(1).Cell(i, 1)
это из VBA Word'а.
В принципе то, что в Excel Лист..!.Cell(i, 1)
в Word'е Tables(..).Cell(i, 1)
Спасибо ОГРОМНОЕ всем!!! ЛЮДИ!!! Я ВАС ЛЮБЛЮ!!!:D :D :D
Спасибо ОГРОМНОЕ всем!!! ЛЮДИ!!! Я ВАС ЛЮБЛЮ!!!:D :D :D
На днях я озадачился этой-же проблемой вставки текста в ворд-файл в определенные места. Много искал в инете и натолкнулся на легкое и изящное решение этой задачи. Если есть у тебя MSDN, то вот индексы статей, все на забугорном языке написано, но статьи интуитивно понятные:
Q124862 - Word 95
Q131583 - Word 97
Q210271 - Word 2000
Хотя я принципиальных различий в статьях не нашел, но все-же...