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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2013, 10:18   #1
Bublic
 
Регистрация: 25.03.2013
Сообщений: 3
Вопрос Выполнение команды cmd из VBA word

Доброго времени суток! Задача примерно следующая: из макроса ворд необходимы выполнить в командной строке виндовс что-то вроде "hglog -r4 >1.txt". Ну содержимое команды не важно, главное оно работает в cmd и пока что мне приходится сначала запускать cmd и выполнять там эту команду а потом уже запускать макрос, а хотелось бы чтобы все выполнялось внутри макроса. Кто-нибудь подскажет как запустить cmd из word VBA?
Bublic вне форума Ответить с цитированием
Старый 23.04.2013, 12:21   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Код:
Sub Procedure_1()
    
    'В константе "myProgramPath" указываем путь и имя программы,
        'которую надо запустить.
    'Заключаем в кавычки на всякий случай, если вдруг в пути
        'и имени будут пробелы. Если в пути или имени есть пробелы,
        'то нужно обязательно заключать путь и имя в кавычки.
    'Чтобы заключить в кавычки, нужно вместо одной кавычки написать две кавычки.
    Const myProgramPath As String = """C:\Windows\System32\CMD.exe"""
    
    'В константе "myTargetPath" указываем путь и имя текстового файла,
        'в который нужно поместить данные из программы "CMD" 
        '(программа "CMD" называется ещё "Командная строка").
    Const myTargetPath As String = """C:\Users\User\Desktop\Новый текстовый документ.txt"""

    'С помощью VBA-функции "Shell" запускаем программу "CMD"
        'и выполняем команду "date".
    '/u - переводит текст в формат Unicode. Это нужно потому, что
        'в программе "CMD" используется какая-то специфическая кодировка
        'символов и русские буквы искажаются.
    '/c - запускает команду (в нашем случае это команда "date") и
        'закрывает программу "CMD", после того, как она сделает свою работу.
    'Команда "date" даёт текущую дату.
    '/t - это параметр команды "date". Этот параметр не выводит
        'приглашение изменить текущую дату на компьютере.
    'Символ ">" помещает данные в файл.
    Shell myProgramPath & "/u /c date /t > " & myTargetPath

End Sub
Скрипт вне форума Ответить с цитированием
Старый 23.04.2013, 20:20   #3
Bublic
 
Регистрация: 25.03.2013
Сообщений: 3
По умолчанию

Спасибо за подробный ответ! буду пробовать
Bublic вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнение cmd команды и получение рез-та в memo ziztracer Общие вопросы Delphi 17 08.02.2016 20:44
cmd. частично не работает отключение вывода результата выполнения команды goluzov Общие вопросы C/C++ 1 06.12.2012 12:10
Выполнение этой команды невозможно... Aelxbor777 Microsoft Office Word 13 05.03.2012 15:53
Выполнение команды в FreeBSD с удалённого .net приложения с правами root Arnezami Общие вопросы .NET 2 12.06.2010 11:52
Получение команды на UDP порт и выполнение по ней действия monty "2" Работа с сетью в Delphi 1 29.04.2010 23:35