Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Word VBA

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

aar



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу помощи: http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=5752#1

----------
* * *
Раритетное и эксклюзивное руководство «Как правильно задавать вопросы». Версия 3.6.
Для недовольных.

Всего записей: 7080 | Зарегистр. 20-11-2003 | Отправлено: 08:14 22-09-2005
ATAS80



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли в Word'е при помощи VBA сделать на панели инструментов ComboBox или ListBox

Всего записей: 66 | Зарегистр. 21-07-2005 | Отправлено: 13:17 26-10-2005
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ATAS80
Несколько непонятно. Что значит сделать ComboBox или ListBox и зачем?

Всего записей: 3906 | Зарегистр. 31-03-2002 | Отправлено: 20:25 26-10-2005
ATAS80



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Ну например такую же компоненту например как выбор шрифта в Word'e или изменения размера шрифта

Всего записей: 66 | Зарегистр. 21-07-2005 | Отправлено: 23:18 26-10-2005
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ATAS80
Не понятно, зачем на панели инструментов. Тем более, что эти контролы на ней уже есть.
PS. Для показа панели сделай правый клик на тоолбаре и выбери 'control toolbox'
 
Добавлено:
А может ты хочешь сделать новый тоолбар? Тогда смотри CommandBars в хелпе.
CommandBars("Standard").Controls.Add Type:=msoControlButton, _
    ID:=2522, Before:=4

Всего записей: 3906 | Зарегистр. 31-03-2002 | Отправлено: 01:06 27-10-2005 | Исправлено: dneprcomp, 01:12 27-10-2005
orre

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопросик тут у меня маленький,может кто поможет ?
есть шаблон в Ворде 2000, .dot файл, в нём куча форм, кода и т.п. , после выполения которых, создается новый .doc -> в него копируется текст из листа в шаблоне и затем хотелось бы закрыть сам шаблон ( без сохранения изменений ),т.е. весь .dot файл, а вот "свежесозданный" .doc должен остаться открытым. Как закрыть документ, или вообще весь ворд -- это понятно, а вот как закрыть template -- не найду я у него ?

Всего записей: 2 | Зарегистр. 05-09-2005 | Отправлено: 19:44 20-11-2005
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
orre
Если открывал template как документ, то и закрывай так же

Код:
ActiveDocument.Close SaveChanges:=wdPromptToSaveChanges/wdDoNotSaveChanges/wdSaveChanges, _
  OriginalFormat:=wdPromptUser
или как Window
Код:
 ActiveDocument.ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges


Всего записей: 3906 | Зарегистр. 31-03-2002 | Отправлено: 07:32 21-11-2005 | Исправлено: dneprcomp, 07:33 21-11-2005
orre

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Цитата:
ActiveDocument.Close SaveChanges....

 
ага, вот тут у меня и возникает проблема. после копирования текста в новый .doc,он у меня получается активным, и у меня не как не выходит сделать активным окно приложения с шаблоном. Когда пишу
Documents("Test.dot").Activate  , то получаю ошибку.

Всего записей: 2 | Зарегистр. 05-09-2005 | Отправлено: 09:58 21-11-2005
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
orre
Попроуй через Windows объект
ActiveDocument.ActiveWindow.Next.Activate
Windows(1).Activate

Цитата:
Using the Window Object
Use Windows(index), where index is the window name or the index number, to return a single Window object. The following example maximizes the Document1 window.
 
Windows("Document1").WindowState = wdWindowStateMaximize
The index number is the number to the left of the window name on the Window menu. The following example displays the caption of the first window in the Windows collection.

Кроме того, возможна ситуация, когда template во время активации исполняет какой-нибудь event и возвращает фокус назад на документ.  
 

Всего записей: 3906 | Зарегистр. 31-03-2002 | Отправлено: 20:12 21-11-2005 | Исправлено: dneprcomp, 20:18 21-11-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может вопрос не по теме, но где в офисе 2003 находится VB?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 00:44 23-11-2005
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что-то я в растерянности. Может кто подскажет решение?
Задача: создать на листе компонент типа label. Создается таким вот кодом:
    s = Selection.Text
    Dim lb1 As InlineShape
    Set lb1 = ActiveDocument.InlineShapes.AddOLEControl(ClassType:="Forms.Label.1")
    lb1.OLEFormat.Object.Caption = s
 
допустим, сохраняем начальную точку:
    sp = Selection.Start
 
Как переместить Лэйбл в позицию sp?
Суть в чем: мне нужно выделенный кусок текста заменить лэйблом.
----
 
вопрос решен. извините
достаточно было вместо ActiveDocument использовать Selection

Всего записей: 1954 | Зарегистр. 19-10-2002 | Отправлено: 11:02 24-11-2005 | Исправлено: Sleepwalker, 13:16 24-11-2005
Inochkin

Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S
Alt+F11

Всего записей: 124 | Зарегистр. 05-08-2005 | Отправлено: 11:12 24-11-2005
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inochkin

Цитата:
Alt+F11

нет, не его вызов, а сами файлы

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 12:19 24-11-2005
Prisoner of Ice

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1.Подскажите как написанные для VBA макросы перегнать в VB, т.е. создать отдельное от оффиса приложение, но чтобы оно работало с листами Excel как если бы это был макрос.
2.Как сделать работу макроса "неявной", т.е. чтобы при сравнении строк, он не показывал как он по ним пробегает, а работал с инфой в памяти. Обязательно ли для этого закачивать ее(информацию) вручную в массив? Я не очень хорошо знаю БД, буду очень благодарен за помощь.

Всего записей: 334 | Зарегистр. 24-11-2005 | Отправлено: 16:08 24-11-2005 | Исправлено: Prisoner of Ice, 16:10 24-11-2005
phpcoder

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста. Такой вопрос.
Макросом из Access необходимо открыть документ word и сделать слияние в новый документ.
Пробовал так:

Цитата:
 
 
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Open ("D:\doc1.dot")
     
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    ActiveWindow.ActivePane.VerticalPercentScrolled = 0
 
    objWord.ActiveDocument.Close
    objWord.Quit
    Set objWord = Nothing
 

Ругается на ActiveDocument.MailMerge - объект не поддерживает св-во или метод.
Что неверно?
 
Добавлено:
Вопрос снят, разобрался.

Цитата:
 
 
    Dim WordApp As Word.Application
    Dim DocWord As Word.Document
     
    Set WordApp = New Word.Application
    WordApp.Visible = True
    Set DocWord = WordApp.Documents.Open("c:\doc1.doc")
    DocWord.Activate
     
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    ActiveWindow.ActivePane.VerticalPercentScrolled = 0
 

Всего записей: 194 | Зарегистр. 23-05-2004 | Отправлено: 09:52 25-11-2005
Anatolij2005

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дайте пожалуйста ссылку в инете на хорошую книгу по Word VBA(для бесплатной закачки).
Заранее благодарен
 
Добавлено:
Помогите решить следующую проблему:
Есть большой документ со вставленными текстовыми полями формы(около 700 полей).
Есть также таблица в которой в одном столбце значения текста по умолчанию для полей
(старое значение) и в другом значения новые. Нужно написать макрос в VBA чтобы в документе заменить все старие значения на новые.
Заранее благодарен

Всего записей: 26 | Зарегистр. 04-10-2005 | Отправлено: 13:20 21-02-2006
Troitsky



Водник Водкин
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Anatolij2005
Книги по ВБА тут. Там правда по Excel больше, но все же...
 
В целом можешь тут  поискать.
 

Цитата:
Помогите решить следующую проблему

Выложил бы примеры файлов (кратко).
Кстати, не проще было на стадии создания полей и текст заменять?
 
Да, вот еще, в итоге нужно получить тот же текст по умолчению (только новый) для каждого поля?

----------
Мы в хорошем настроении гуляем по лесам.
Кто обидеть нас захочет – сам получит по усам.
Сам полу- получит по усам. Сам полу- получит по усам!

Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 22:34 21-02-2006
Anatolij2005

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
За ссылки спасибо правда они работают не все и по Word VBA почти ничего не нашел.Вот
кусок текста с полями
 
1.1.  Natrii chloridi    
Натрия хлорид , раствор 0,95% для инфузий по 200 мл и 400 мл в бутылках стеклянных для крови, трансфузионных и инфузионных препаратов.
    1.2.Натрия хлорид, раствор 0,95% для инфузий, препарат производства ООО «Юни-ко», является лекарственным средством и соответствует требованиям АНД кР.С.№ П.05.03/456987 ,приказ МОЗ № 2356 от 29.05.05
 
    1.3. Регистрационное удостоверение Р.С.№ П.05.03/456987
полями являются
Natrii chloridi
Натрия хлорид , раствор 0,95% для инфузий по 200 мл и 400 мл
Натрия хлорид, раствор 0,95% для инфузий
кР.С.№ П.05.03/456987
№ 2356 от 29.05.05
 
старое и новое значения находятся в обычной таблице в одном столбце старое значение в другом новое
Дело в том что текст который нужно заменить необходимо менять не однократно и он не всегда известен, абсолютно верно:
в итоге нужно получить тот же текст по умолчению (только новый) для каждого поля.

Всего записей: 26 | Зарегистр. 04-10-2005 | Отправлено: 11:03 22-02-2006
Troitsky



Водник Водкин
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Anatolij2005

Цитата:
Вот кусок текста с полями

Я же тебя другое просил
Цитата:
Выложил бы примеры файлов

Ну ладно
Имеется документ, в текст которого вставлно некоторое количество текстовых полей. Значение свойства текст по умолчанию каждого поля уникально? Т.е. нет двух таких полей, текст по умолчанию которых одинаков? Таблица со старыми и новыми занчениями сделана в Excel или набрана непосредственно в Word? Попадаются ли среди старых и новых значений одинаковые? Поля в документе следуют в том же порядке, что и строки таблицы со значениями их текста по умолчанию?
 
Вопросов много и если случай не частный, то с реализацией могут возникнуть трудности, и, в таком случае, если требуемые действия нужно произвести всего один раз, возможно, проще будет даже вручную все сделать.

----------
Мы в хорошем настроении гуляем по лесам.
Кто обидеть нас захочет – сам получит по усам.
Сам полу- получит по усам. Сам полу- получит по усам!

Всего записей: 794 | Зарегистр. 13-12-2003 | Отправлено: 14:53 22-02-2006
Anatolij2005

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я бы с радостью выложил все файлы но подписивался за конфедициальность информации так что извини.Значение свойства текст по умолчанию каждого поля не уникально(есть одинаковые). Но каждое поле как ты понял закладка Текстовое Поле1 Текстовое Поле2 и т.п.Одинаковых закладок нет.Таблица со старыми и новыми значениями сделана в Word.
Среди старых и новых значений одинаковые попадаются.Поля в документе следуют в том же порядке, что и строки таблицы со значениями их текста по умолчанию(если это будет не так то буду вручную все переделывать).Требуемые действия нужно произвести возможно раз 20-30.Если есть вариант как это реализовать вручную. Напиши возражать не буду.
Заранее благодарен

Всего записей: 26 | Зарегистр. 04-10-2005 | Отправлено: 17:21 22-02-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Word VBA

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru