Тема: VBS: Как запустить VBA через VBS?
Здравствуйте. ничего не понимаю в VB
потому обращаюсь на форумы.
есть папка с файлами rtf
надо удалить первую страницу (не учитывая колонтитулы) если там есть определенное слово.
на одном форуме помогли и написали на vba макрос по удалению, работает и даже сносит это слово в колонтитулах.
Sub makr()
Dim s1, j1, j2, s2, s3
Dim obj As Object
Dim zm1, zm2
zm1 = "keyword"
zm2 = ".keyword."
Dim tbl As Table
''''''''''''''''''''''''''''
s1 = Word.ActiveDocument.Sections(1).Range.Text
If InStr(s1, zm1) > 0 Then
Debug.Print "1ok"
Word.ActiveDocument.Sections(1).Range.Delete
End If
'''''''''''''''''''''''''''''
j1 = Word.ActiveDocument.Sections(1).Headers.Count
Do While j1 > 0
Word.ActiveDocument.Sections(1).Headers(j1).Range.Select
If Selection.Tables.Count > 0 Then
Set tbl = Selection.Tables(1)
j2 = tbl.Range.Cells.Count
Do While j2 > 0
s1 = tbl.Range.Cells(j2).Range.Text
Debug.Print j1, j2, s1;
If InStr(s1, zm1) > 0 Or InStr(s1, zm2) > 0 Then
Debug.Print "**"
tbl.Range.Cells(j2).Range.Text = ""
End If
j2 = j2 - 1
Loop
End If
j1 = j1 - 1
Loop
''''''''''''''''''
j1 = Word.ActiveDocument.Sections(1).Footers.Count
Do While j1 > 0
Word.ActiveDocument.Sections(1).Footers(j1).Range.Select
If Selection.Tables.Count > 0 Then
Set tbl = Selection.Tables(1)
j2 = tbl.Range.Cells.Count
Do While j2 > 0
s1 = tbl.Range.Cells(j2).Range.Text
Debug.Print j1, j2, s1;
If InStr(s1, zm1) > 0 Or InStr(s1, zm2) > 0 Then
Debug.Print "**"
tbl.Range.Cells(j2).Range.Text = ""
End If
j2 = j2 - 1
Loop
End If
j1 = j1 - 1
Loop
'ActiveWindow.ActivePane.View.Type = wdPrintView
ActiveWindow.View.Type = wdPrintView
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.WholeStory
End Sub
еще нашел скрипт на VBS, который открывает файлы из папок и удаляет все ссылки.
With CreateObject("word.application")
For Each x In CreateObject("scripting.filesystemobject").getfile(wscript.scriptfullname).parentfolder.Files
If LCase(Mid(x.Name, InStrRev(x.Name, ".") + 1, 4)) = "rtf" Then
With .documents.open(x.Path)
numDocs = numDocs + 1
.Range.Fields.Unlink 'Ctrl+A, Ctrl+Shift+F9
.Close True 'save changes
End With
End If
Next
.Quit
End With
wscript.echo "Обработано документов " & numDocsВот вопрос как их соединить, чтобы при запуске VBS файла применялся макрос по удалению первой страницы?
в общем уже не актуально, решил задачу другим способом

