Способ запуска макросов Excel из командной строки или пакетного файла?

Linux

Напоследок коротко расскажу о том, как выйти из Консоли или закрыть Терминал Linux:

  1. Если вы находитесь в Консоли, то нажмите сочетание клавиш CTRL ALT F7 для возврата на Рабочий стол.
  2. Если вы хотите выйти из Терминала, находясь в графическом окружении, то наберите команду exit.

Мои методы закончились. Знаете ещё? Поделитесь с нами в комментариях. Давайте становиться умнее вместе. До свидания.

Батником

Раз уж решил рассказать обо всех вариантах, то приведу и совсем уж замороченный способ для тех, кто не ищет лёгких путей или предпочитает все действия запечатывать в bat.файлы. Батник предварительно нужно создать:

  1. В новом текстовом документе редактора «Блокнот» (правый щелчок мыши на пустом пространстве Рабочего стола, далее, действие «Создать текстовый документ») напечатайте команду taskkill /F /IM cmd.exe.
  1. Пользуясь пунктом «Сохранить как…» из меню «Файла», сохраните документ под любым именем с расширением .bat, например, «Закрыть.bat».

Друзья, ваш батник – закрыватель cmd готов. Пользоваться им можно так:

  1. Сверните окошко командной строки одним из способов, описанных в первом параграфе данной статьи. Вы должны оказаться на Рабочем столе.
  2. Используя кнопку TAB, прыгайте по значкам, пока не оберётесь до «Закрыть.bat».
  3. Нажмите на кнопку Enter.

Закрыть cmd

Как закрыть с помощью мыши окно командной строки, предполагаю, знают все – нужно нажать на красный прямоугольник с белым крестиком внутри, расположенный в верхнем правом углу. Есть ещё один вариант:

  1. Сделайте правый щелчок по верхней части окошка.
  2. В контекстном меню, которое появится, если вы щёлкнули там, где надо, выберите действие «Закрыть».

С клавиатуры

Всё описанное в предыдущем абзаце статьи выполняется довольно просто, но что делать, если «хвостатого помощника» нет под рукой или он сломан. Придётся обходиться без мышки. На самом деле есть куча способов осуществить закрытие cmd с помощью клавиатуры:

  1. То же контекстное меню можно вызвать сочетанием клавиш ALT ПРОБЕЛ, а дальше с помощью стрелочки «вниз» следует спуститься к нужному действию и подтвердить его нажатием на кнопку ENTER.
  1. Или можно обратиться за помощью к Диспетчеру задач. Он запускается зажатием трёх клавиш – CTRL ALT DEL (DELETE).
  1. В Диспетчере во вкладке «Процессы» (перемещаться между пунктами меню и вкладками можно кнопкой TAB и стрелками), используя стрелку «вниз» спуститесь до процесса «Обработчик команд Windows» (вероятно, что в 10, 8 или 7 версиях название будет несколько отличаться, значит, ищите схожее по смыслу).
  1. Когда подсветите нужный процесс, нажмите на кнопку DEL или «Контекстное меню», изображающую список (прямоугольник с чёрточками внутри) и расположившуюся между правыми ALT и CTRL на клавиатуре.
  1. В появившемся списке команд выберите «Снять задачу».
:/>  Как удалить пустой том диска

Свернуть окно cmd

Друзья, в моей практике частенько бывают случаи, что некоторые пользователи, говоря «закрыть», подразумевают сворачивание окна – в случае с cmd работают все те же методы, что и с любыми другими программами:

  1. Щёлкните один раз мышкой (левой кнопкой) по чёрточке в правом углу окошка (там, где красный крестик).
  2. С помощью сочетания клавиш ALT и TAB сверните текущее окошко или повторным нажатием TAB переместитесь к нужному окну. Кнопку ALT при этом нужно держать зажатой.
  1. Чтобы вмиг очутиться на Рабочем столе, то есть разом свернуть все окна, используйте любую из двух комбинаций – WIN D или WIN M.

Способ запуска макросов excel из командной строки или пакетного файла?

@ Robert: я попытался адаптировать ваш код с относительным путем и создал пакетный файл для запуска VBS.

VBS запускается и закрывается, но не запускает макрос… Есть идеи, где может быть проблема?

Option Explicit

On Error Resume Next

ExcelMacroExample

Sub ExcelMacroExample() 

  Dim xlApp 
  Dim xlBook 

  Set xlApp = CreateObject("Excel.Application")
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  strFilePath = objFSO.GetAbsolutePathName(".") 
  Set xlBook = xlApp.Workbooks.Open(strFilePath, "ExcelsCLIENTES.xlsb") , 0, True) 
  xlApp.Run "open_form"


  Set xlBook = Nothing 
  Set xlApp = Nothing 

End Sub

Я удалил ” приложение.Бросить”, потому что мой макрос вызывает пользовательскую форму, заботиться о нем.

Ура

редактировать

Я действительно разработал его, на всякий случай, если кто-то хочет запустить userform “alike” автономное приложение:

проблемы, с которыми я столкнулся:

1 – я не хотел использовать событие Workbook_Open, поскольку excel заблокирован только для чтения.
2-команда batch ограничена тем фактом, что (насколько мне известно) она не может вызвать макрос.

Я сначала написал макрос для запуска моей пользовательской формы, скрывая приложение:

Sub open_form()
 Application.Visible = False
 frmAddClient.Show vbModeless
End Sub

затем я создал vbs для запуска этого макроса (делая это с относительным путем tricky):

dim fso
dim curDir
dim WinScriptHost
set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetAbsolutePathName(".")
set fso = nothing

Set xlObj = CreateObject("Excel.application")
xlObj.Workbooks.Open curDir & "ExcelsCLIENTES.xlsb"
xlObj.Run "open_form"

и я, наконец, сделал пакетный файл для выполнения VBS…

@echo off
pushd %~dp0
cscript Add_Client.vbs

обратите внимание, что я также включил “Set back to visible” в мой Userform_QueryClose:

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ThisWorkbook.Close SaveChanges:=True
    Application.Visible = True
    Application.Quit
End Sub

в любом случае, спасибо за вашу помощь, и я надеюсь, что это поможет, если кому-то он нужен

:/>  Исправляем ошибку «Структура диска повреждена. Чтение невозможно».

Текстовой командой

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

  1. Наберите exit и нажмите Enter. Кстати, если ввести это же слово в конце списка других команд, то консоль закроется автоматически после выполнения установленных задач.
  1. Если предыдущий способ не сработал, что редко, но случается, тогда напечатайте taskkill /F /IM cmd.exe и также нажмите Enter.

Оставьте комментарий