【前言】
朋友新開了一個小店,為了瞭解客戶的需求(也是為了得到一些客戶的資料),就搞了一個活動:如果進店客戶參與一份只需5分鐘的調查問卷,就可以不限購買額,全場9折優惠。可是如果給客戶一張紙一支筆,別說5分鐘能填完,估計在現在這個“事事用手機的年代”,也沒有幾個人願意給你寫這個。
所以他就引進了一個小程序,貼出二維碼,手機掃一掃就有一個調查問卷顯示在手機上(還可以被獲得一些初步的個人信息),手指點一點,估計5分鐘不用就可以完成一份兒不太長的調查問卷了。
【正文】
對於他用的什麼App或者小程序,不是作者關心的問題,我只是在那個問卷上看到了一個功能,覺得可以分享給大家。
現在這樣的調查問卷的形式並不少見,其中以單選題、多選題、問答題為主要形式,而為了便捷、快速,甚至是可以引導式的錄入,這些調查形式上,又以選擇題佔絕大的比重。好了,在Excel的ActiveX控件中,我們知道多選題可以使用CheckBox控件來實現,但是對於選項控件Optionbutton就會出現就會出現問題,如下
這是因為Optionbutton控件是“單選控件”,在同一個分組下,眾多的Optionbutton選擇項是互斥的。所以我們現在需要給不同組別的Optionbutton進行分組,此時我們需要另一個控件,Frame控件(框架控件),下面我們就一起來看看它的做法和可以實現的功能。
【製作過程】
步驟1:
在VBE界面的工程窗口中,插入一個新的窗體,上面的動圖我們做了一個“錯誤”的窗體案例Userform1,所以再建立新窗口,默認就是Userform2 。改Userform2的Caption為“Frame與Optionbutton”
步驟2:
添加Frame框架控件,
改Frame控件的Caption標籤為“1、1+1=?請選擇...”
步驟3:
重點來了,在框架控件裡面添加Optionbutton控件,
然後連續做出其他3個問題的框架組,如下圖。
最後在添加一個可以判斷“答案和給出評語”的命令控件Commandbutton控件,更改其Caption標籤屬性為“測試評語”,及此整體的窗體佈局就完成了。
步驟4:
給Commandbutton控件添加代碼,使其可以判斷我們在每個分組中Optionbutton控件的選擇項內容(Value是True/False),代碼如下:
<code>Private Sub CommandButton1_Click() For i = 1 To 12 If Me.Controls("OptionButton" & i).Value = True Then s = s & Me.Controls("OptionButton" & i).Caption End If Next i If s = "B:2C:3D:4" Then MsgBox "OK!明天上崗,找門衛領工具,門口掃地!" Else MsgBox "幼兒園沒畢業!" End If End Sub/<code>
最後讓我們在看一下第二次做的窗體效果如何,是不是可以起到Optionbutton控件不再互斥的功能。
今天的分享就到這裡了,但是值得注意一點,如果同學你夠細心的話,就會發現,即使用了Frame控件進行分組,在整體這個窗口中,Optionbutton控件的序號依然是從1到12個。在“Excel中不能重複命名”這條鐵律一定要深入我心,不僅ActiveX控件中需要注意,在使用Excel,乃至“數據統計這個‘行當’”中都一定要時刻警醒!!
【編後語】
對於Optionbutton控件的用法,想了很多。實在不確定,在實際工作中,這個控件能給我們帶來多大的作用,像“問卷調查”、“人事登記”、“信息錄入”其實都可以見到這個控件的影子。那麼今天能夠通過對Frame控件的用法分享,希望可以看到更多的ExcelER能夠對ActiveX控件的使用。
閱讀更多 孫樹帥老師 的文章