2012-05-12 174 views
0

我正在創建一個PPT插件,我正在努力尋找答案,以確定是否可以確定屏幕上的SlideRange位置。PowerPoint VBA - SlideRange在屏幕上的位置

我想要在特定位置打開一個用戶窗體(例如left = 10,top = 10,從SlideRange的左上角開始)。不幸的是,它的立場是基於屏幕分辨率。由於可以更改分辨率並且可以修改PPT視圖類型,因此我無法建立SlideRange的準確位置。

VBA有可能嗎?

在此先感謝! MJ

回答

1

SlideRange沒有特殊的位置......它是幻燈片的集合,當你想要將表格定位在10,10時,你不知道使用了什麼單位。但在正常全屏視圖,你可以在點幻燈片放映窗口座標,像這樣:

隨着SlideShowWindows(1) Debug.Print。左 Debug.Print .TOP Debug.Print .Height 調試。 Print .Width End With

要獲得屏幕像素的結果,您必須使用Win API調用來獲得屏幕DPI(每英寸點數)。

英寸=點/ 72 像素=英寸* DPI

+0

您好Steve, 謝謝您的回答。很高興知道沒有辦法找到幻燈片的位置。 我正在嘗試創建一個浮動標尺(用戶窗體),顯示其當前位置,這將幫助我對齊對象。 我意識到它可以被圖片替換,並且單獨的用戶窗體將顯示當前的圖片位置。 我面臨另一個障礙,那就是在PPT中缺少MouseUp/Down事件。 WindowSelectionChange不能解決問題...你知道是否有可能在PPT中捕獲鼠標事件? 謝謝 MJ –

1

< <你知道,如果有可能趕在PPT鼠標事件?

只有當鼠標點擊改變選擇,並且如你所知,這不是所有的時間。

有可能通過Win API做到這一點,但是沒有像這樣的東西被內置到PPT本身。