2016-12-26 66 views
5

如何以編程方式在VB6插件中打印源代碼..?在對象瀏覽器中沒有可以找到VBIDE的打印或預覽方法。如何在VB6插件中使用VBIDE以編程方式打印源代碼..?

我在Google上搜索得很高& low,而且VBIDE代碼模塊打印信息很奇怪。我爲PrettyPrint獲得了很多點擊率,但僅此而已。缺點如此之大,以至於我懷疑是否有一些基本概念完全缺失。

我害怕了Herb在https://stackoverflow.com/a/41034211/2705042中提到的O'Reilly書的副本,它沒有提到源代碼的打印。我能看到的唯一方法是將代碼導出到文本文件,並通過通常與VBIDE無關的方式進行打印。

我還檢查了Chip Pearson的VBE指南http://www.cpearson.com/excel/vbe.aspx,這幾乎與VBIDE完全相同,甚至除了我提到的保存到文本文件然後打印的想法之外,還沒有線索打印代碼。

**理想情況下,我想使用現有的VB6文件>打印對話框,並添加一個額外的複選框。我意識到將控件添加到現有對話框是另一個話題,我並不反對創建我自己的打印對話框。

+0

VB6允許您使用文件 - >打印切換打印「漂亮」選項。一般來說,最好讓你的代碼「漂亮」放在第一位。如果你想要更詳細的東西,你可以試試[VB.Print - 源代碼打印工具](https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=9493&lngWId=1)來自Planet-Source-Code –

+0

印刷漂亮與我創建的插件無關。主要目的僅僅是將每個子例程或函數作爲單獨的打印作業發送到打印機。這是爲了利用我們辦公室打印機的訂書機,所以每個程序都已經穩定下來。它保持了奇妙的組織。我已經爲我的問題綜合了一個解決方法:我使用VBIDE直接訪問代碼模塊中的文本,將每個過程複製到一個字符串變量中,然後在打印機上進行索引。但是我仍然可以使用內置的打印功能 - 如果我能找到它的話。 – spinjector

+0

自從我使用VB6插件寫作已經有一段時間了,但我理解這個概念。我相信'mztools'可能已經有程序打印,但我不記得。很確定沒有任何東西能夠抓住所有方法並將它們分別打印成單個作業。可悲的是,VB6代碼現在很少,VB6插件代碼更加罕見。如果我遇到任何相關的問題,我可以發佈它 - 但如果是我,我會將其作爲一個單獨的項目編寫(可能基於該源代碼應用程序構建),將其轉化爲完成特定任務。 –

回答

2

它可能與CommandBarButton代理和SendKeys。

獲得一個句柄打印的CommandBarControl是很簡單的,但按下按鈕拋出自己的方式對話,所以我們必須使用的SendKeys設置選項,並提交表單....

你可以使用類似於以下內容的代碼:

Dim printCommand As CommandBarControl 
Set printCommand = Application.VBE.CommandBars.FindControl(ID:=4) 

printCommand.Execute 

'Yep, SendKeys, erghhh 
Application.SendKeys "P" 'Force the whole project to print 
Application.SendKeys "{ENTER}" 
相關問題