- 帖子
- 79
- 主題
- 33
- 精華
- 0
- 積分
- 123
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- x64
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2013-10-24
- 最後登錄
- 2024-3-28
|
[發問] excel vba 如何將其它程式的視窗移到最上層?
本帖最後由 eigen 於 2016-10-28 17:57 編輯
這是一個列印的程式,會從 月結地址 抓指定的行,到 信封15K ,填入資料,然後從印表機列印。(又臭又長,我將這些省略了)
現在,我希望將這些,輸出成 pdf ,我的pc 有安裝 cutepdf ,列印時,然定cupte pdf ,就能產生另新檔的畫面,就能產生pdf
- Sheets("信封15K").PrintOut Copies:=1, Collate:=True, ActivePrinter:="CutePDF Writer" '指定cutePDF 列印
- Application.Wait Now() + TimeValue("00:00:03") 'delay 3sec
-
- '如何讓 cutepdf 產生的 『另存新檔』的視窗出現在 最上面?
-
- SendKeys "n", False 'press n 跳到 檔名輸入樓位
- SendKeys E.Range("B1") & ".Pdf" & "{ENTER}", False 'key in file name A001.pdf
複製代碼 delay 3sec 是因為 cupte pdf 的反應不快
出現另存新檔之後,我再用 SendKeys 這個指令來 輸入 n 及 輸入編號.pdf (a001.pdf b001.pdf之類)
後來實做時,400個地址大約要 27分鐘,在列印的期間,我只要操作電腦,(開啟 chrome/ word / 記事本..) 另存新檔 這個 視窗就會被擠到圖層的下面
這時的 key in 就會變成在 word / 記事本上打字 ,然後就....整個錯亂了
※我想在 key in 之前,能先將上圖的 『另存新檔』移到最上層,請問如何實作?謝謝- Option Explicit
- Sub Print__15k()
- '******************************************************************
- '在Sheets("月結地址")中,用滑鼠選擇要印列的行,執行此程式,即可套表列印
- '******************************************************************
- Dim E As Range
-
- Sheets("月結地址").Activate
- For Each E In Selection.EntireRow
-
- If (E.Range("A1") = 1 Or UCase(E.Range("A1").Value) = "F") Then '排除第一行標頭 及 非準備列印的資料,行首需為1或F
- E.Range("a1") = "Yes" '標示 Yes,不同程序標示不一樣
-
-
- If Sheets("月結地址").AutoPDF.Value = False Then
- Sheets("信封15K").PrintOut '印列
- Sheets("信封15K").Activate
- Else
- Sheets("信封15K").PrintOut Copies:=1, Collate:=True, ActivePrinter:="CutePDF Writer" '指定cutePDF 列印
- Application.Wait Now() + TimeValue("00:00:03") 'delay 3sec
-
- '如何讓 cutepdf 產生的 『另存新檔』的視窗出現在 最上面?
-
- SendKeys "n", False 'press n 跳到 檔名輸入樓位
- SendKeys E.Range("B1") & ".Pdf" & "{ENTER}", False 'key in file name A001.pdf
- End If
-
- 'Else
- ' MsgBox "Input error!" & vbCrLf & vbCrLf & "Can't Print Cheque.", vbOKOnly, "Error"
- End If
- End If
-
- Next
- End Sub
複製代碼 |
|