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

» Word VBA

Автор: V4mp
Дата сообщения: 28.12.2008 17:28
подскажите, как можно из vba обращаться к полям (элемент управления формы (формы предыдущих версий)) в документе для ввода в них из vba нужного мне текста.

с текстбоксами в самом документе понятно - полная аналогия текстбоксов на формах. Но они не очень удобны для компоновки текста в документе, и совместимость со старыми версиями хотелось бы сохранить..
Автор: V4mp
Дата сообщения: 04.01.2009 03:23
уже неделя прошла, а ответа все нет.. Неужели никто не знает??
Автор: pharmakis
Дата сообщения: 04.01.2009 14:16
Чето у мну имена ни копирятсо.. или ручки кривые))

2V4mp:
чувак все пьют и спят;)


2Troitsky:
спасибо баааальшое, обязательна попробую
Автор: Vadim39
Дата сообщения: 27.01.2009 02:30
сорри, ошибся темой
Автор: anatolus
Дата сообщения: 31.01.2009 20:28

Цитата:
DachnikGarik
В вашем случае самый простой(и красивый) способ - слияние!

А поподробней можно с примером , пожалуйста.
Автор: Munchkin
Дата сообщения: 09.02.2009 16:29
Здравствуйте.
Относительно долго мучаюсь с простой проблемкой. Постановка задачи весьма проста, но не получается сделать и все тут.
Имеем файл вордовский. В нем инфа. Суть такова: исчем строки определенные, выделяем их и копируем на новый лист документа или еще лучше в экселевскую таблицу.
Так вот. Мой макрос строки находит, выделяет и вроде как копирует, но вот вставлять на новый лист никак не хочет.
Буду весьма благодарен, если кто-то подскажет решение данной проблемы. Код макроса ниже:


Код: Sub Макрос13()

Dim i, n As Integer

s = Windows.Application.ActiveDocument.Name
Documents.Add DocumentType:=wdNewBlankDocument
ss = Windows.Application.ActiveDocument.Name
Windows(s).Activate
i = 0
n = 70

For i = 0 To n Step 1

Selection.Find.ClearFormatting
With Selection.Find
.Text = "Итого по телефону:"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
With Selection
.Copy
Windows(ss).Activate
.Paste
.TypeParagraph
End With
Windows(s).Activate
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.Find.ClearFormatting
Next
End Sub
Автор: baston
Дата сообщения: 16.02.2009 15:38
Munchkin, вам нужно использовать буфер обмена для того, чтобы вставить данные в другой документ. Простое копирование-вставка в Word в данном случае не сработает.
Попробуйте добавить в ваш код:


Код: Dim clp As String
Dim MyData As DataObject
Set MyData = New DataObject

clp = Selection.Text
MyData.SetText clp
MyData.PutInClipboard

Автор: kiraiira
Дата сообщения: 09.03.2009 16:44
Здравствуйте.
Помогите пожалуйта. Как мне в Worde выделить весь текст на текущей странице?????
Автор: baston
Дата сообщения: 10.03.2009 09:55
Рекомендую использвать шаблон: Ссылка
Автор: kiraiira
Дата сообщения: 10.03.2009 19:52
Спасибо
Автор: ands555
Дата сообщения: 01.04.2009 21:58
Пытаюсь задействовать функцию "Вставка элемента управления" - "поле со списком" (элемент ActiveX)

При создании в Word данного элемента, запускается Visual Basic с Code следующего содержания:

Private Sub ComboBox1_Change()

End Sub

Подскажите, плиз, какие команды нужно прописать?
Автор: anatolus
Дата сообщения: 06.04.2009 19:41
Имею следующий код VBA ( цель этой функции создание имени для сохраняемых файлов по типу outputfile001, outputfile002 и т.п.):

Код: Function NameOfOutputFile(ByVal n As Integer) As String
' добавляем нолики в имя файла
'Dim name As String
NameOfOutputFile = "outputfile"
Select Case n
Case n < 10
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "00" & Str(n)
Case n < 100
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "0" & Str(n)
Case Else
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & Str(n)
End Select
End Function
Автор: SERGE_BLIZNUK
Дата сообщения: 06.04.2009 22:00
anatolus
такова особенность работы str(Number)
либо используйте функцию Format, либо так:
Код: Select Case n
Case 1 To 9
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "00" & Trim(Str(n))
Case 10 To 99
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & "0" & Trim(Str(n))
Case Else
NameOfOutputFile = OuputFilePlace & NameOfOutputFile & Trim(Str(n))
End Select
Автор: ands555
Дата сообщения: 06.04.2009 22:39
Пытаюсь задействовать функцию "Вставка элемента управления" - "поле со списком" (элемент ActiveX)

При создании в Word данного элемента, запускается Visual Basic с Code следующего содержания:

Private Sub ComboBox1_Change()

End Sub

Подскажите, плиз, какие команды нужно прописать?
Автор: suomifinland
Дата сообщения: 17.04.2009 14:55
Ребята..., помогите, шеф принес кучу Вордовских файлов, более 1000 *.doc, и "попросил" к понедельнику переконвертировать их в html странички, я так поняла для эл.книги, перекопала весь любимый форум, и... не нашла ответа, как желательно ПАКЕТНО, переконвертировать все это дело..., БЫТЬ может у кого-либо есть подходящий скрипт для этого дела, понимаете на носу праздник, а шефу не почем... Помогите ребята!
Извините за сумбурность, простоя сама в этом деле, деле скриптов, невеликая дока...
Автор: filemoto
Дата сообщения: 17.04.2009 15:13
suomifinland
ну так в ворде сохранить как... и выбери *.html
можешь макрос записать для этого дела
Автор: suomifinland
Дата сообщения: 17.04.2009 15:18
Да нет, Вы не так поняли, мне необходимо ПАКЕТНО, переконвертировать более 1000 файлов, т.е крайне желательна автоматизация работы, и это мне подозреваю придется делать каждый день... представляете..

Добавлено:
Эх... если бы, я была сильна, мальчики, в Ваших макросах..., да вот не дано... поэтому к Вам и обратилась...
Автор: TGR3
Дата сообщения: 06.05.2009 12:43
у меня тут вопрос возник по макросам, может поможете чем сможете
меня попросили посмотреть почему макрос не правильно работает, так вот когда в ворде запускаешь макрос, он что то делает, а потом выдает вот такой текст
СРОЧНЫЙ НАБОР</strong><br>
СРОЧНЫЙ НАБОР </strong><br>
Текст здесь идет бла, бла. </strong><br>
</strong><br>
сам макрос прикреплю ниже
там же фаилик word, который надо прогнать макросом, а потом в Adobe InDesign CS вставить и отправить на полиграфию... мне кажеться там проблема в макросе
там в одном месте идет
[code]Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "^p"
.Replacement.Text = "</strong><br>^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With[/code]
здесь кажеться одна ошибка, но я думаю там их много в вордовском фаиле в самом винзу есть объява с кодами <tstart>Наполнитель баллонов г.Наб.Челны
ГОУ "Учебно-курсовой комбинат "Строитель". <tend>
вот <tstart>text<tend>(техт в этих кодах должен быть в рамке) на выходе после макроса этих кодов нету( в макросе я видел, то что они заменяются на пустоту то есть замена на "", правильно это или нет, я не знаю...
вордоский фаил создается из одной программы в формат rtf у меня тут тоже вопрос есть разница какой формат rtf ili doc? просто когда идет импорт в Adobe InDesign CS то с rtf то на выходе получаються корябзике, а если word то все хорошо со шрифтами.. и еще там по моему много лишнего кода... сеичас пока читаю книжку VBA.i.programmirovanie.v.MSOffice.dlya.polzovateley.2006 но может кто быстрее найдет ошибки и исправить их если не тяжело конечно... просто нужно срочно, а я тока вспоминаю основы которые мне дали в институте давно давно это был конечно...
http://depositfiles.com/files/xmkuksuxc
заранее все большое спасибо...
Автор: GameKowal
Дата сообщения: 18.07.2009 18:10
Люди, не поможете?
Есть хороший набор макросов WOPR 2003, который при установке на WORD 2003 выдаёт ошибку "Требуемый класс отсутствует Class Factory.Out of memory".

Образ диска с установочным файлом находится тут, Установщик программы запускается с жёсткого диска только при наличии смонтированного в виртуальном устройстве данного образа. Прожигать не обязательно.
В этом наборе макросов очень много полезных фич, рассчитываю, что местные гуру мне помогут. Уверен,что дело в каком- нибудь пустячке.Спасибо!


Автор: unse
Дата сообщения: 23.08.2009 23:26
Привет,

Есть такая проблема:

Надо чтобы Вордовский документ можно было печатать двумя способами:

1. Собственно так, как он выглядит изначально. Со всеми хедерами и футерами.
2. Без хедеров и футеров.

С 1 проблем нету )) Основная проблема в том что я никак не могу найти, как распечатать без всего этого добра, не удаляя их. Надо чтобы после печати документ оставался в изначальном виде и можно было продолжать работать.

Можно как-то сделать чтобы просто хедеры и футеры не печатались? или как сделать чтобы после печати делалось UNDO и документ восстанавливался?

Заранее спасибо.
Автор: GregoryPek
Дата сообщения: 26.08.2009 14:46
просьба знатокам накидать макрос к WORD (похожего здесь не нашел):

-имеем документы WORD, в которых есть пустые строки, количество их разное от 1 до 10-20 подряд

надо чтобы все пустые строки (подряд более одной) удалялись макросом

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

Автор: murkovich
Дата сообщения: 26.08.2009 15:54
GregoryPek
А чем плох способ в лоб - заменять две пустые строки на одну, и так до тех пор, пока есть что заменять?
Автор: vitaly1
Дата сообщения: 26.08.2009 16:11
При этом менять на 2 абзаца (^p^p), если нужно чтобы 1 пустая строка все-таки осталась.
Автор: GregoryPek
Дата сообщения: 26.08.2009 16:51
murkovich
vitaly1
если б это был единичный случай то конечно вручную

а если много и часто то конечно лучше макрос, тем более что пустые строки перемешены и в виде (^p) и в виде (^l)
Автор: burat1no666
Дата сообщения: 05.09.2009 15:12
Прошу прощения за возможный оффтоп, хотя считаю, что суть моего вопроса непосредственно связана с темой данного топика. Чтобы не писать здесь, указываю ссылку на источник.
Заранее спасибо.
Автор: murkovich
Дата сообщения: 06.09.2009 10:31
GregoryPek
Всё равно не понятно, где проблема. Ведь всё, что можно вручную, можно и макро рекордером записать, и потом в цикл поместить.

Единственное, нужно решить, какие замены наиболее безопасны для сохранения форматизации документа. Т.е., в лоб было бы сначала все ^l переделать в ^p, и после этого все ^p^p^p в ^p^p. Если это слишком брутально, то нужен более эластичный подход.
Автор: GregoryPek
Дата сообщения: 06.09.2009 11:22

Цитата:
нужен более эластичный подход.
вот я это и хотел

пришлось сделать
Цитата:
слишком брутально
но вроде работает

Автор: kronic
Дата сообщения: 09.10.2009 09:53
Есть макрос печати протоколов.

Код: Sub Печать_Протоколов()
'
' Печать_Протоколов Макрос
'
'
With ActiveDocument.MailMerge
.Destination = wdSendToPrinter
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
End Sub
Автор: V4mp
Дата сообщения: 10.10.2009 21:37
Прошу помощи!
Есть шаблон word 2007 с макросами.
КАК сделать, чтобы при создании нового документа на основании этого шаблона все макросы ИЗ шаблона копировались В новый документ при его сохранении???
Автор: pribush
Дата сообщения: 14.12.2009 21:39
Ребята очень срочно нужна помощь. Есть простая задача и срочно нужно решение.
Задание:
1. В текущем абзаце все слова, содержащие нечетное количество букв, выделить красным цветом, а четное синим.

Помогите пожалуйста!!

Страницы: 1234567891011121314151617181920212223242526

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


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