返回列表 上一主題 發帖

VBA是否可以建立動態UserForm

看了,但是仍然有些問題,像Excel我用
Set mynewform = Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_MSForm)

但是會出現失敗說,不知道要改什麼
clio

TOP

建議大大 UserForm 不要用動態

Set FC = Application.VBE.ActiveVBProject.VBComponents.Add(3)
Set F = UserForms.Add(FC.Name)
    F.Show 0
            
Set TextBox = F.Controls.Add("forms.TextBox.1")
    TextBox.Top = 0
Set ListBox = F.Controls.Add("forms.ListBox.1")
    ListBox.Top = 30
   
MsgBox "Stop"
Application.VBE.ActiveVBProject.VBComponents.Remove FC

TOP

本帖最後由 准提部林 於 2016-3-17 10:06 編輯

除非專業, 動態表單及物件增刪, 對新手是高難度, 老手不必然可以完全掌握,
如果還要讓新增物件有觸發事件程式, 就更複雜,
我的方式是預設必要物件, 再以程式去決定哪些物件顯示與否,
至於CHECKBOX的功能, 有時用LISTBOX的多重選擇也可達到目的,
不過表單的設計不算單純, 對新手並不容易, 最好去買本專門介紹表單的書看,
有基礎才能去運用各項技巧~~~

TOP

回復 11# jackyq

感謝大大的回覆:
我好像在第一行就會卡住,無法執行的過去說,大大的也會這樣子嗎?
感謝大大的提醒,我會聽從您的建議,UserForm不使用動態的,因為這邊有些觸發點,不好處理,只是會想知道怎麼樣可以動態建立UserForm只是好奇,想說可以多學一樣而已
clio

TOP

回復 12# 准提部林

感謝准提部林大大的回覆
確實如同大大所說,這二天研究的過程中,有試過動態建立Control,所以也好奇是否能動態建立UserForm,但是也如同大大所說,物件的觸發,這個倒是一個大大的問題
會接受准大的建議,把一些可能會用到的預設在UserForm內,再依程式代入的參數,來決定那些要顯示,這個確實也是我考慮過的方法之一,只是對於這方面的研究還真的是有時會想知道
有沒有機會這樣作?才會又問了動態UserForm的問題,我也有去讀書館查了一些書,但是對於VBA詳盡的好像沒有見到,不知道准提部林大大有沒有建議的書籍,可以讓我去買回來參考的,感謝您。
clio

TOP

回復 14# clio


沒辦法提供有哪些書籍的參考, 建議去書局找, 這是工具書, 可多買幾本,
除了表單應用, VBA最基礎的書也必備, 放在手邊, 遇問題就去翻, 找到解決方法, 就學一招,
若沒有基礎, 只在此發問, 不止問不到重點, 別人給的答案, 也是一知半解,
另, VBE內建說明檔是非常好的學習管道, 花些時間去尋寶~~~

學VBA, 我只建議用〔三花牌〕--花時間.花精神,花金錢(買書)~~~別無它途
有了基礎,再來看別人寫的程式,就有豁然開朗的感覺,急不來!!!

TOP

回復 15# 准提部林


    感謝大大的回覆,我也是主要是在說明內找範例,學的,這個真的要花時間,研究、測試,就會發現要領在那邊,學習過程真的是很愉快…
clio

TOP

事件用「物件類別模組」處理,很方便。

TOP

回復 1# clio


    1.可以動態產生元件、userform
    2.理論上可以,但看妳要怎判斷,只是 不懂妳說的意思

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 2# mark15jill

假如,程式動態產生一個Userform, 而裡面有一個ListBox,這樣怎麼做
clio

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題