Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Word VBA

Автор: DavenL0StuS
Дата сообщения: 29.05.2007 11:48
AndVGri


Цитата:
Dim pStyle As Style
For Each pStyle In ActiveDocument.Styles
Debug.Print pStyle.NameLocal
Next pStyle


Так все стили отобразит, а не те котоые в документе юзаются.
У мя вывело 156 стилей, а в документе юзается только 2.

Я вот щас бьюсь - как отобразить все используемые в документе шрифты?
Проходить по всей коллекции Characters долго слишком.
Хотел через стили, - так такой вопрос возник как взять только те шрифты которые отображаются в панельке "Styles and Formatting" при выбранном фильтре "Formatting in Use"?
Ели смотреть свойство InUse коллекции Styles то там у половины тру стоит..
И ещё в коллекции Styles нет стилей, которые базируются на каком-то уже существующем, например таких "Normal + Font:....."
Автор: popkov
Дата сообщения: 29.05.2007 15:38
А существует ли возможность на время выполнения макроса заблокировать возможность изменения параметров Word? А то после работы моейго макроса оказывается проставлена галочка "отображать скрытый текст", которую приходится убирать вручную... Я в макросе настроек Word вообще не касаюсь - он автоматически эту галку проставляет при операциях над текстом, который скрытый.
Автор: AndVGri
Дата сообщения: 29.05.2007 15:51
popkov
По окончанию выполнения макроса принудительно делай
ActiveWindow.View.ShowHiddenText = False
Автор: popkov
Дата сообщения: 29.05.2007 21:51
AndVGri
Спасибо! Помогло!
Автор: Vo1
Дата сообщения: 31.05.2007 15:08
Есть такой макрос для замены одного слова на другое во всем документе:

Private Sub CommandButton1_Click()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = UserForm1.TextBox1
.Replacement.Text = UserForm1.TextBox2
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

End Sub


Почему он не заменяет текст в объекте "надпись"?
Автор: popkov
Дата сообщения: 31.05.2007 19:20

Цитата:
Почему он не заменяет текст в объекте "надпись"?

Потому что это не текстовый объект. Вот если ты выделишь текст в надписи - тогда должен работать, как я понимаю.
Автор: TVeresk
Дата сообщения: 04.06.2007 08:58
Добрый день! Помогите, пожалуйста, написать код, описывающий следующее действие: есть 2 textbox, как сделать, чтобы при наборе текста в первом textbox, он автоматически проявлялся во втором?
Буду очень признательна за помощь!
Автор: AndVGri
Дата сообщения: 04.06.2007 10:03
TVeresk
Например, воспользоваться обработчиком события Change для TextBox1
Автор: TVeresk
Дата сообщения: 04.06.2007 12:18
AndVGri
А можно подробней? - я плохо разбираюсь в VBA
Автор: AndVGri
Дата сообщения: 04.06.2007 16:15
TVeresk
То есть затруднение вызывает выделение Textbox на форме и нажатие F1, чтобы просмотреть свойства, методы и события?

Код:
Private Sub TextBox1_Change()
TextBox2.Text = TextBox1.Text
End Sub
Автор: lpforever
Дата сообщения: 05.06.2007 00:28
Помогите, плиз, с макросом.
Нужно написать макрос, который определяет кол-во таблиц в документе *.doc, и составляет кучку файлов , тоже doc, со строками из этих таблиц, выбранными рандомом, без возвращения.
В связи с эти вопрос : как узнать кол-во таблиц в документе?
Автор: AndVGri
Дата сообщения: 05.06.2007 02:38
lpforever

Цитата:
определяет кол-во страниц в документе
и
Цитата:
со стоками из этих таблиц
???
И вообще, используй в VBA F2, а в Object browser F1 - крутая вещь, доложу

Код:
Debug.Print ActiveDocument.ActiveWindow.ActivePane.Pages.Count
Debug.Print ActiveDocument.Tables.Count
Автор: TVeresk
Дата сообщения: 05.06.2007 07:24
AndVGri
Огромное спасибо!!!
Автор: lpforever
Дата сообщения: 05.06.2007 19:27
Ещё вопрос — как узнать размерность таблицы, а точнее кол-во рядов?
ActiveDocument.Tables(1).Rows(2) возвращает вроде не число...
извиняюсь, увидел: ActiveDocument.Tables(1).Rows.Count
Автор: jONES1979
Дата сообщения: 05.06.2007 23:50
во какая штука! Word Commander! исходники доступны!
http://www.interface.ru/home.asp?artId=5514
http://www.interface.ru/iarticle/files/5514_1.zip
Автор: popkov
Дата сообщения: 06.06.2007 21:35
jONES1979

Цитата:
Word Commander! исходники доступны!

А ссылочку не подкинешь? В оригинальном DOC-файле исходники запаролены...
Автор: DavenL0StuS
Дата сообщения: 07.06.2007 05:09

Цитата:
В оригинальном DOC-файле исходники запаролены...

Как дети чес слово, пароль VBA - когда ж это проблемой было?
popkov
Смари ссылку в личке.
Автор: lpforever
Дата сообщения: 07.06.2007 21:12
AndVGri
ок, спасибо, надеюсь последний вопрос — как создать документ с нужным именем? documents.create возвращает чтото, а примера работы с ним не нашёл..
p.s. : может книжку/литературу кто-нить знает, а то я только на excel нашёл...
Автор: Troitsky
Дата сообщения: 08.06.2007 06:37
lpforever

Цитата:
как создать документ с нужным именем?

Одним методом такое проделать, кажется, невозможно. Можно попробовать сначала создать документ, а потом сразу же его сохранить с нужным именем

Код: Set MyDoc = Documents.Add
MyDoc.SaveAs "c:/filename.doc"

' ............

Set MyDoc = Nothing
Автор: Boom
Дата сообщения: 09.06.2007 11:52
Всем привет! Подскажите где можно скачать книгу по VBA для Word, а то у меня хэлп на английском. И ещё вопрос, у меня есть куча документов текстовых, можно ли написать на VBA программу, которая находит определённое слово/фразу в каждом документе и заменяет её на другое?
Автор: lpforever
Дата сообщения: 10.06.2007 11:37
хелп.
нужно вставить строку в конце значение переменной счётчика, ругается на несоответствие типов, как это реализовать?
//Selection.TypeText Text:="Билет №" + I
Автор: AndVGri
Дата сообщения: 10.06.2007 13:49
lpforever
Selection.TypeText Text:="Билет №" & CStr(I)
Автор: lpforever
Дата сообщения: 10.06.2007 13:55
AndVGri
спасибо
ещё вопрос, как скопить содержимое ячейки таблицы?

Код: st = ThisDocument.Tables(J).Cell(rn, 1).Range.Text
Автор: AndVGri
Дата сообщения: 10.06.2007 14:31
lpforever
Х-м, с таблицами в Word не работал, сделай так st = Left$(st, Len(st) - 2&)
Автор: lpforever
Дата сообщения: 10.06.2007 15:22
AndVGri
спасибо, но не катит... но я нашёл 2 способа:
мне подходит при вставке этой строки делать TypeBackspace.
а можно при взятии range у Cell просто на 2 меньше символа захватывать.
Автор: AndVGri
Дата сообщения: 10.06.2007 15:50
lpforever

Цитата:
а можно при взятии range у Cell просто на 2 меньше символа захватывать

Так я, собственно, об этом и писал. Усечь полученное содержимое на 2 символа
Автор: popkov
Дата сообщения: 11.06.2007 18:27
А как импортировать форму в проект?
Написал форму с кодом, экспортировал, получилось 2 файла с расширениями .frm и .frx. При импорте первого он почему-то распознаётся как модуль, и не работает. Второй вообще не импортируется. Что я делаю не так?
Автор: Mantisby
Дата сообщения: 14.06.2007 12:45
Такой вопрос: есть шаблон резюме, который использует таблицы с Forms элементами в ячейках. Документ менять нельзя, поэтому для юзеров редактирование будет запрещено. В тоже время некоторые таблицы могут повторяться несколько раз (скажем, предыдущее место работы). Можно ли сделать для юзера возможность добавления, скажем, ещё одной таблицы?
Автор: lpforever
Дата сообщения: 18.06.2007 19:33
а если есть просто doc файл с таблицами и макросом обработки, но в макрос нужно передать число, которое задаёт юзер, как это лучше реализовать в документе?
Автор: nworm0
Дата сообщения: 20.06.2007 12:04

Цитата:
Всем привет! Подскажите где можно скачать книгу по VBA для Word, а то у меня хэлп на английском. И ещё вопрос, у меня есть куча документов текстовых, можно ли написать на VBA программу, которая находит определённое слово/фразу в каждом документе и заменяет её на другое?


Может быть, что-то с этой страницы удовлетворит Ваш взыскательный вкус.

Страницы: 1234567891011121314151617181920212223242526

Предыдущая тема: Кластеризация изображений


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.