[VBA] 如何將「核取方塊」變大 ? (方法1)

更新於 發佈於 閱讀時間約 8 分鐘

前言:

怎麼把 表單控制項 的 核取方塊 變大 ? 這是個很久很久以前就遇過的問題,根據查得的資訊顯示,至今約莫 11 年前就有人提過這問題了。

表單控制項 的 核取方塊

表單控制項 的 核取方塊

目前 Excel 系統仍然沒有提供調整其大小的方式,但由一些資訊得知,之前還是有很多高手提出一些解決方法。
有字型方法、VBA方法 ( ActiveX 控制項的 TextBox、利用 VBA 控制儲存格內的字型 ) ... 等等。

本篇將介紹如何用 VBA 控制儲存格內的字型,在輸入特定字元,即顯示特定圖案,來達到模擬核取方塊的目的。


操作:

  1. 點擊藍色文字框使其文字變為「核取方塊 (已開啟)」,即可在空白儲存格,任意輸入資料,此時左邊的儲存格會立即出現一個核取方塊。
  2. 只要在其上方,滑鼠左鍵連點兩下,即可自動變成核取圖案,並在最右方會自動顯示核取的日期時間。
  3. 在核取方框上方,再次連點兩下,會出現「是否取消勾選」,點【是】,即變成不核取狀態並刪除最右方的日期時間。
  4. 點擊藍色文字框使其文字變為「核取方塊 (已關閉)」,可關閉自動核取方塊功能。


成果:

以下是成果影片,請先欣賞~ 謝謝。


工作表

【Sheet1】內的程式碼

Private Sub Worksheet_Change(ByVal T As Range)

If ActiveSheet.Shapes("REC_CheckBox").TextFrame.Characters.Text = "核取方塊 (已關閉)" Then Exit Sub

If T.Count > 1 Then Exit Sub ' 單選儲存格

Application.EnableEvents = False

If T.Offset(, -1) = "" And T <> "" Then
With T.Offset(, -1)
.Value = ChrW(163)
.Font.Name = "Wingdings 2"
.Font.Size = 30 ' 不核取
End With

With T ' 核取方塊內容
.Font.Name = "微軟正黑體"
.Font.Size = 12
End With
ElseIf (T.Offset(, -1) = ChrW(163) Or T.Offset(, -1) = ChrW(82)) And T = "" Then
' 將 核取方塊位置 和 時間戳記 刪除 !
With Range(T.Offset(, -1).Address & "," & T.Offset(, 1).Address)
.Value = ""
.Font.Name = "微軟正黑體"
End With
End If

Application.EnableEvents = True

End Sub


Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)

If T(1, 2) = "" Then Exit Sub ' 抓核取方塊右邊的內容 ,為空不執行
If Not (T(1, 1) = ChrW(163) Or T(1, 1) = ChrW(82)) Then Exit Sub

Application.EnableEvents = False

If T.Value = ChrW(82) Then If MsgBox("是否取消勾選?", vbYesNo) = vbNo Then GoTo Handle_Cancel

With T
.Value = IIf(.Value = ChrW(163), ChrW(82), ChrW(163))
.Font.Name = "Wingdings 2"
.Font.Size = 30
End With

If T.Value = ChrW(82) And T(1, 3) = "" Then
With T(1, 3)
.Value = Now()
.Font.Name = "微軟正黑體"
.NumberFormatLocal = "yyyy/mm/dd hh:mm:ss"
End With
Columns(Split(T(1, 3).Address, "$")(1) & ":" & Split(T(1, 3).Address, "$")(1)).EntireColumn.AutoFit
ElseIf T.Value = ChrW(163) Then
T(1, 3) = ""
MsgBox "【 時間戳記 】 資料已刪除 !!"
T(1, 3).Select
Else
MsgBox "有資料 !! 【 時間戳記 】 無法記錄 !!"
T(1.3).Select
End If

Handle_Cancel:

Application.EnableEvents = True
Cancel = True

End Sub


模組

【Module1】內的程式碼

Sub Turn_OnOff_CheckBox()
Dim REC_text As String
REC_text = ActiveSheet.Shapes("REC_CheckBox").TextFrame.Characters.Text

If REC_text = "核取方塊 (已關閉)" Then
ActiveSheet.Shapes("REC_CheckBox").TextFrame.Characters.Text = "核取方塊 (已開啟)"
ElseIf REC_text = "核取方塊 (已開啟)" Then
ActiveSheet.Shapes("REC_CheckBox").TextFrame.Characters.Text = "核取方塊 (已關閉)"
Else
ActiveSheet.Shapes("REC_CheckBox").TextFrame.Characters.Text = "核取方塊 (Error)"
End If
End Sub

Sheet1 工作表內的 REC_CheckBox 矩形,需指定巨集為 Module1 的「 Turn_OnOff_CheckBox 」。


彩蛋

能看到最後面,不會被這麼多程式碼嚇到,可見 你/妳 有成為 VBA 高手的潛力唷 ~ 恭喜 !!




檔案下載


下一篇 [VBA] 如何將「核取方塊」變大 ? (方法2),將使用 Excel 常見的文字框來設計成 核取方塊 樣式,敬請期待 ~

以上就是這次的分享,請持續關注 和 Meiko微課頻道,謝謝大家 ~

有任何問題,請在下方留言討論,或加入 LINE社群 Meiko微課小綠群(粉絲交流群),歡迎您的加入。


avatar-img
131會員
45內容數
Meiko微課頻道主要以辦公室應用為出發點,針對上班族群所遇到的問題進行分享
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
在空白儲存格,滑鼠左鍵點兩下,跳出視窗,再從視窗內的按鈕上的文字來輸入至當前儲存格內。
再次利用 WORKDAY.INTL 函數來計算感恩節、祖父母節。
自己的價值,由你自己創造。 ( PS:此文章有可能把 你/妳 變成天才也說不一定... )
猶太人的20句至理名言,竟然和 Excel 有關 ?! 喜歡 Excel 的你,或許也會認同並喜歡第十二句 !
史上最強的計算母親節 Excel 公式!
受到「Meiko微課頻道」的『Excel教學 E70 | 十字光標格式設定,避免看錯資料行』的影片啟發,再加上參考網路資料所精心製作而成的「十字光標 增益集」,絕對值得您一看。
在空白儲存格,滑鼠左鍵點兩下,跳出視窗,再從視窗內的按鈕上的文字來輸入至當前儲存格內。
再次利用 WORKDAY.INTL 函數來計算感恩節、祖父母節。
自己的價值,由你自己創造。 ( PS:此文章有可能把 你/妳 變成天才也說不一定... )
猶太人的20句至理名言,竟然和 Excel 有關 ?! 喜歡 Excel 的你,或許也會認同並喜歡第十二句 !
史上最強的計算母親節 Excel 公式!
受到「Meiko微課頻道」的『Excel教學 E70 | 十字光標格式設定,避免看錯資料行』的影片啟發,再加上參考網路資料所精心製作而成的「十字光標 增益集」,絕對值得您一看。
你可能也想看
Google News 追蹤
Thumbnail
在創作的路上真的很多人問我說 到底要怎麼做出符合自己期待 但又可以表現得很有美感的作品?🥹 這個問題真的應該是每個創作者都一直在學習的課題吧!
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
資料中如果有特定的內容需要移除,並且是有一定的規則,EXCEL會蠻多種解決方案。 用一個資料進行舉例: 這份資料中每個課程後面都有一個括號備註日期。 如何把括號中的日期快速刪除,分享幾種常見的方法 取代法 剖析法 CTRL+E法 函數法 【💡取代法】 選取資料範圍
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
過去,在Excel中使用核取方塊時,我們常受限於其大小,一直無法輕易調整。最近的E365版本解決了這個問題,但舊版本的Excel卻沒有這個新功能。因此,在這裡,Meiko將跟同學們分享如何在新舊版本中輕鬆放大核取方塊,而且不受數量的限制。 實際操作請參考影片教學,影片中提供的語法請參考本篇文章
Thumbnail
Excel是職場上必備的工具之一,它可以用來處理各種數據,從簡單的計算到複雜的分析,都能夠勝任。在Excel中,有一個非常實用的技巧,叫做「微調按鈕」。微調按鈕可以讓你輕鬆地調整數據,而不需要手動輸入。它非常適合用於以下情況:需要頻繁調整數據的情況,例如:產品價格、銷售目標等。
Thumbnail
這篇文章介紹瞭如何使用VBA來控制Powerpoint,以及透過VBA控制Powerpoint的好處,包括動態資料的圖表簡報、改變表格底色、串接API等。文章強調了了解物件和屬性的關係後,就可以開始探索VBA控制Powerpoint的各種可能性。
Thumbnail
在創作的路上真的很多人問我說 到底要怎麼做出符合自己期待 但又可以表現得很有美感的作品?🥹 這個問題真的應該是每個創作者都一直在學習的課題吧!
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
資料中如果有特定的內容需要移除,並且是有一定的規則,EXCEL會蠻多種解決方案。 用一個資料進行舉例: 這份資料中每個課程後面都有一個括號備註日期。 如何把括號中的日期快速刪除,分享幾種常見的方法 取代法 剖析法 CTRL+E法 函數法 【💡取代法】 選取資料範圍
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
過去,在Excel中使用核取方塊時,我們常受限於其大小,一直無法輕易調整。最近的E365版本解決了這個問題,但舊版本的Excel卻沒有這個新功能。因此,在這裡,Meiko將跟同學們分享如何在新舊版本中輕鬆放大核取方塊,而且不受數量的限制。 實際操作請參考影片教學,影片中提供的語法請參考本篇文章
Thumbnail
Excel是職場上必備的工具之一,它可以用來處理各種數據,從簡單的計算到複雜的分析,都能夠勝任。在Excel中,有一個非常實用的技巧,叫做「微調按鈕」。微調按鈕可以讓你輕鬆地調整數據,而不需要手動輸入。它非常適合用於以下情況:需要頻繁調整數據的情況,例如:產品價格、銷售目標等。
Thumbnail
這篇文章介紹瞭如何使用VBA來控制Powerpoint,以及透過VBA控制Powerpoint的好處,包括動態資料的圖表簡報、改變表格底色、串接API等。文章強調了了解物件和屬性的關係後,就可以開始探索VBA控制Powerpoint的各種可能性。