Multiple Apps

Command Line from VBA (DOS Prompt Commands)

Ease of Use

Easy

Version tested with

2003 

Submitted by:

Oorang

Description:

Simple example to show how to execute dos commands from VBA. 

Discussion:

 

Code:

instructions for use

			

Option Explicit Public Sub TestCommandLine() Const lngCancelled_c As Long = 0 Dim strCmd As String strCmd = VBA.InputBox("Enter DOS Command:", "Enter Command", "dir") If VBA.LenB(strCmd) = lngCancelled_c Then Exit Sub End If CommandLine strCmd, True End Sub Public Function CommandLine(command As String, Optional ByVal keepAlive As _ Boolean = False, Optional windowState As VbAppWinStyle = VbAppWinStyle.vbHide) _ As Boolean '-------------------------------------------------------------------------------- ' Procedure : CommandLine ' Author : Aaron Bush (Oorang) ' Date : 10/02/2007 ' Purpose : Provides a simple interface to execute a command lines from VBA. ' Input(s) : ' command : The DOS command you wish to execute. ' keepAlive : Keeps the DOS window open *after* command has been ' executed. Default behavior is to auto-close. (See ' remarks section for additional information.) ' windowState : Determines the window state of the DOS prompt ' *during* command execution. ' Output : True if completed with no errors, False if error encountered. ' Remarks : If the windowState property is set to vbHide while the keepAlive ' parameter is set to True, then windowState will be changed to ' vbNormalFocus. '-------------------------------------------------------------------------------- On Error GoTo Err_Hnd Const lngMatch_c As Long = 0 Const strCMD_c As String = "cmd.exe" Const strComSpec_c As String = "COMSPEC" Const strTerminate_c As String = " /c " Const strKeepAlive_c As String = " /k " Dim strCmdPath As String Dim strCmdSwtch As String If keepAlive Then If windowState = vbHide Then windowState = vbNormalFocus End If strCmdSwtch = strKeepAlive_c Else strCmdSwtch = strTerminate_c End If strCmdPath = VBA.Environ$(strComSpec_c) If VBA.StrComp(VBA.Right$(strCmdPath, 7), strCMD_c, vbTextCompare) <> _ lngMatch_c Then strCmdSwtch = vbNullString End If VBA.Shell strCmdPath & strCmdSwtch & command, windowState CommandLine = True Exit Function Err_Hnd: CommandLine = False End Function

How to use:

  1. Press F11 to launch the VBE.
  2. Insert a module.
  3. Paste Code.
 

Test the code:

  1. Press Alt F8 to run macros.
  2. Select this "TestCommandLine".
 

Sample File:

No Attachment 

Approved by mdmackillop


This entry has been viewed 213 times.

Please read our Legal Information and Privacy Policy
Copyright @2004 - 2020 VBA Express