返回列表 發帖

VB6.0如何判斷excel文件是否已打開

請問:
VB6 如何判斷 c:\aa.xls 的excel文件是否已打開?

Private Sub Command1_Click()
Dim a
a = Shell(C:\Program Files\Microsoft Office\Office14\excel.exe c:\aa.xls, vbNormalFocus)
End Sub
Private Sub Form_Load()
Command1.Value = True '開啟後先自動按一下
End Sub

目前是設定是,執行VB檔就自動先觸發 Command1 按鍵打開excel文件
關閉時excel文件不會關,
需求:
1.執行VB檔時,先判斷 c:\aa.xls 是否已打開?
2.VB檔執行時每30秒監控一次 c:\aa.xls是否有被關閉?若 c:\aa.xls被關閉,自動觸發一下 Command2 鍵
3. CmdSend如何改成Command?
Private Sub CmdSend_Click()
  MSComm1.Output = Trim(txtSend.Text) & vbCrLf
  End Sub

不好意思問題有點多 麻煩大家了!

檢查檔案是否開啟,比較簡單的作法是使用API

DeclareFunctionFindWindowLibuser32AliasFindWindowA(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsInteger
Dimhwnd1AsInteger

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load'程式執行就檢查Excel文件是否開啟
hwnd1=FindWindow(vbNullString,MicrosoftExcel-Book1)'自己修改標題
Ifhwnd10Then
MsgBox(open)
Else
MsgBox(close)'如果沒有開啟,顯示Button1
Button1.Enabled=True
EndIf
EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
......'開啟檔案,請自行處理
Timer1.Enabled=True'開啟檢查文件是否被關閉的計時器
EndSub

PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
hwnd1=FindWindow(vbNullString,MicrosoftExcel-Book1)
Ifhwnd1=0Then'如果文件被關閉,顯示Button2
Button2.Enabled=True
EndIf
EndSub

這個程式屬於VB2008的語法,VB6請自己修改

TOP

返回列表