Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。
Excel 的 VBA 如何不讓使用者移動Userform
據說 Excel 的 VBA 呼叫 Windows API 可以做到不讓使用者移動 Userform, 請示範
5 個解答
- crdotlinLv 51 十年前最愛解答
做了一個例子,因為說來話長,請先試用看。
範例下載
我會整理出來PO在我的部落格再詳細說明。
2008-03-20 21:25:10 補充:
在這裡
http://www.box.net/shared/n3nh0z4sgg
2008-03-21 08:02:51 補充:
感謝 pop 的鼓勵。
2008-03-21 18:10:28 補充:
BlowExpress您真客氣。
To jackylu:
關於 [用vba(或用VB)做一個文字編輯軟體(如同C++的編輯器),我該如何下手? ]小可真的不會。不好意思!
2008-03-21 20:34:53 補充:
詳細的說明已經PO在部落格,請大家指教。
http://blog.xuite.net/crdotlin/excel/16313265
2008-03-21 23:07:37 補充:
To herman,
試試這樣
'UserForm結束
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'將原本的程序還回來
SetWindowLong usfHwnd, GWL_WNDPROC, preWndProc
If CloseMode = 0 Then Cancel = True
End Sub
也就是將範例的QueryClose事件中的代碼加上
If CloseMode = 0 Then Cancel = True
即可。
2008-03-24 11:18:59 補充:
herman,
請下載測試
http://www.box.net/shared/8n5ii4klcc
基本上就是將 [在標題區按下滑鼠右鍵] 的訊息也吃掉就是啦。
- 1 十年前
您好:請問如果按右上的X時,也不能關閉表單
要在哪增加程式碼?
2008-03-21 21:33:19 補充:
jackylu:你的方法,我一直試不成功,能不能提供檔案下載,謝謝您!
2008-03-23 23:46:50 補充:
crdotlin 您真的很強吔
我試了...也成功了
真的謝謝您
但是在顯示列按右鍵時,會出現"移動"
點選後就能移動userform
有辦法使之也無法移動嗎
謝謝!
2008-03-24 12:38:24 補充:
crdotlin 謝謝您這麼熱心
讓初學VBA的我
學習到更多
你的解釋也很清楚
我會再多加油努力學習
謝謝你哦...高手
- jackyluLv 61 十年前
crdotlin大大出現了!! 你的部落格是我朝聖的聖地耶!!
原本是要回答BlowExpress大大的,既然您來了,小的就不獻醜了.
反正我的答案也是向您學的^_^
(我的做法是將userform的顯示列移除,這樣就不能移動了)
2008-03-21 09:25:18 補充:
theHwnd = FindWindow(vbNullString, Me.Caption)
IStyle = GetWindowLong(theHwnd, GWL_STYLE)
IStyle = IStyle And (Not WS_CAPTION)
SetWindowLong theHwnd, GWL_STYLE, IStyle
2008-03-21 09:33:55 補充:
crdotlin大大既然您出現了,想請教您一個問題,我想用vba(或用VB)做一個文字編輯軟體(如同C++的編輯器),我該如何下手?
2008-03-22 23:00:10 補充:
to herman,
你可以去crdotlin大大的部落格,看userform那一部份,就有將顯示列移除的範例囉!!