Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2015, 19:45   #1
Karyuudo
Пользователь
 
Регистрация: 17.02.2008
Сообщений: 53
По умолчанию Как запустить через vbs макрос ворда?

Погуглил, нашел как один человек решил задачу:
Код:
with CreateObject("Word.Application")
    .Documents.Open "G:\Progecte\Programming\vba\ScriptControl.docm"
    .Run "ScriptTest"
    .Quit
end with

по аналогии сделал так:

Код:
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, 3)) = "rtf" Then
      With .documents.open(x.Path)
        numDocs = numDocs + 1

		.Run "delete_title_page"

        .Close True 'save changes
      End With
    End If
  Next
  .Quit
End With
wscript.echo "Обработано документов " & numDocs
Но выдает ошибку:
Цитата:
Объект не поддерживает это свойство или метод: Run
Karyuudo вне форума Ответить с цитированием
Старый 02.06.2015, 20:10   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

.Run - это метод приложения, а не документа. Придется таки Вам использовать еще одну переменную
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 02.06.2015, 20:17   #3
Karyuudo
Пользователь
 
Регистрация: 17.02.2008
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
.Run - это метод приложения, а не документа. Придется таки Вам использовать еще одну переменную
Какую еще переменную?
я просто в vbs/vba вообще не понимаю, так разовая задача возникла по обработке файлов.
Вот нашел как человек на другом форуме задал вопрос,ему ответили, вопрос решился.

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


методом тыка, выявил, что ошибка возникает из-за
.Close True 'save changes

без этой строчки обрабатывает, а потом возникает окошко с предложением сохранить.
но надо чтоб автоматом сохранял, я так понял за это отвечает
.Close True 'save changes
но при добавлении её уже и ошибка что писал выше

Последний раз редактировалось Karyuudo; 02.06.2015 в 20:34.
Karyuudo вне форума Ответить с цитированием
Старый 02.06.2015, 20:49   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
Set wa = CreateObject("word.application")
For Each x In CreateObject("scripting.filesystemobject").getfile(wscript.scriptfullname).parentfolder.Files
  If LCase(Mid(x.Name, InStrRev(x.Name, ".") + 1, 3)) = "rtf" Then
    With wa.documents.Open(x.Path)
      numDocs = numDocs + 1

      wa.Run "delete_title_page"

      .Close True 'save changes
    End With
  End If
Next
wa.Quit
wscript.echo "Обработано документов " & numDocs
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работая с Word через COM-OLE, можно ли запустить макрос из Normal.dot либо из самого .DOC? DBEER Microsoft Office Word 5 27.05.2015 11:43
запустить vbs в указанное время KANDRAT JavaScript, Ajax 0 19.11.2011 16:24
Как запустить макрос экселя из макроса ворда... Rossoman Microsoft Office Excel 1 08.05.2010 20:51
Выполнить код через макрос vbs segail Microsoft Office Excel 0 04.04.2010 19:25
Как запустить макрос из ячейки? Maxx Microsoft Office Excel 8 15.04.2009 15:47