您的位置:首页 > 编程语言 > VB

VBA调用doc命令,doc窗口关闭之后,继续执行代码

2017-06-26 22:55 513 查看
VBA调用doc命令,doc窗口关闭之后,继续执行代码

Option Explicit

'Docワィンドワ閉じるした後、後続けの処理実施
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandel As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHa


注:

如果你在程序中指定了Option Explicit,那么所有的变量都必须用Dim显式声明才可以使用。

'* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * ** *
'*                                                 *
'* Out対象ファイル作成(Tempフォルダー作成)                *
'* 作成日:2016/12/22                              *
'* 作成者:                               *
'* 更新日:                                        *
'* 更新者:                               *
'*                                                 *
'* * * * * * * * * * * * * * * * * * * ** * * * * * * * * ** * *


Public Sub createTempFolder()

On Error GoTo errl

'■バッチ対象
Dim BAT_CREATE_TEMP_TOOL As String: BAT_CREATE_TEMP_TOOL = _
BAT_FILE_URL & "\" & BAT_CREATE_TEMP_TOOL_FILE_NAME

'bat命令
Dim cmdStr
cmdStr = """" & BAT_CREATE_TEMP_TOOL & """" & " " & """" & OUT_FILE_PATH & """"
'MsgBox cmdStr

'バッチを実行する
RetVal = Shell(cmdStr)

processId = OpenProcess(&H100000, False, RetVal)
r = WaitForSingleObject(processId, -1&)
r = CloseHandle(processId)

TEMP_FOLDER_EIXST_FLG = "1"

GoTo endok

errl:
'異常処理
ERROR_FLG = "1"

ERROR_INFO_LIST.Add ("関数:「createTempFolder」で、エラー発生しました。")
ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)

endok:

End Sub


变量定义

'バッチファイルの保存場所
BAT_FILE_URL = Mid(OUT_FILE_PATH, 1, indexOfOut - 1) & "Tool" & "\bat"

BAT_CREATE_TEMP_TOOL_FILE_NAME = "CreateTempTool.bat"




CreateTempTool.bat

@echo off
set outDir=%1

cd /d %~d0
cd %outDir%
mkdir Temp


http://blog.csdn.net/sxzlc/article/details/53749868

bat中的[%~dp0]使用



扩展:

%0:表示批处理本身 

%~sdp0:

这里面的

d:表示扩展到批处理文件所在的盘符;

p表示扩展到批处理文件所在的路径.

假如批处理文件在c盘的123文件下的test文件夹下:

 c:\123\test\批处理文件:

d:表示c:\;

p表示123\test\

s:表示路径中含有短名 

cd /d %~sdp0:就表示进入批处理文件所在的文件夹中
cd /d %~d0:就表示进入批处理文件的盘符

其他方式调用bat

http://blog.csdn.net/sxzlc/article/details/53750128





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: