[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微課小綠群(粉絲交流群),歡迎您的加入。


123會員
42內容數
Meiko微課頻道主要以辦公室應用為出發點,針對上班族群所遇到的問題進行分享
留言0
查看全部
發表第一個留言支持創作者!
在空白儲存格,滑鼠左鍵點兩下,跳出視窗,再從視窗內的按鈕上的文字來輸入至當前儲存格內。
再次利用 WORKDAY.INTL 函數來計算感恩節、祖父母節。
自己的價值,由你自己創造。 ( PS:此文章有可能把 你/妳 變成天才也說不一定... )
猶太人的20句至理名言,竟然和 Excel 有關 ?! 喜歡 Excel 的你,或許也會認同並喜歡第十二句 !
史上最強的計算母親節 Excel 公式!
受到「Meiko微課頻道」的『Excel教學 E70 | 十字光標格式設定,避免看錯資料行』的影片啟發,再加上參考網路資料所精心製作而成的「十字光標 增益集」,絕對值得您一看。
在空白儲存格,滑鼠左鍵點兩下,跳出視窗,再從視窗內的按鈕上的文字來輸入至當前儲存格內。
再次利用 WORKDAY.INTL 函數來計算感恩節、祖父母節。
自己的價值,由你自己創造。 ( PS:此文章有可能把 你/妳 變成天才也說不一定... )
猶太人的20句至理名言,竟然和 Excel 有關 ?! 喜歡 Excel 的你,或許也會認同並喜歡第十二句 !
史上最強的計算母親節 Excel 公式!
受到「Meiko微課頻道」的『Excel教學 E70 | 十字光標格式設定,避免看錯資料行』的影片啟發,再加上參考網路資料所精心製作而成的「十字光標 增益集」,絕對值得您一看。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
為什麼要比較Excel 工作表(Worksheet) 工作中,常常會儲存多個同一目的,但不同時間的工作。或者,有時要檢查兩個人做的EXCEL工作表,是否有所不同。當然,若工作表很小,肉眼看是最快的,但是,如果是庫存的大量資料如1萬筆以上的財務資訊等,這時靠肉眼看,速度實在是太慢了,而且也容易出錯。
Thumbnail
利用【字型】來設計【核取方塊】,再加入 Excel VBA 來模擬【儲存格連結】的功能 !
Thumbnail
1.宣言指定代稱活頁簿或頁籤 2.同時控制兩個活頁簿 3.調整欄寬、刪除欄
Thumbnail
1. 如何開始巨集(VBA) 2. 初步認識編寫VBA的面板 3. 儲存啟用VBA的活頁簿檔案
Thumbnail
通過VBA程式設計,我們可以實現對Word表格的快速、批量操作,提高文檔處理的效率和精度。在本文中,我們將介紹如何使用VBA為Word表格添加邊框、調整網底顏色等排版技巧,幫助您更好地完成文檔的美化和排版。
Thumbnail
我們將介紹如何根據自己的需要自定義操作流程,提高Word使用的效率和便捷性。在本文中,我們將介紹如何利用VBA在Word中自動插入底稿頁尾。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
為什麼要比較Excel 工作表(Worksheet) 工作中,常常會儲存多個同一目的,但不同時間的工作。或者,有時要檢查兩個人做的EXCEL工作表,是否有所不同。當然,若工作表很小,肉眼看是最快的,但是,如果是庫存的大量資料如1萬筆以上的財務資訊等,這時靠肉眼看,速度實在是太慢了,而且也容易出錯。
Thumbnail
利用【字型】來設計【核取方塊】,再加入 Excel VBA 來模擬【儲存格連結】的功能 !
Thumbnail
1.宣言指定代稱活頁簿或頁籤 2.同時控制兩個活頁簿 3.調整欄寬、刪除欄
Thumbnail
1. 如何開始巨集(VBA) 2. 初步認識編寫VBA的面板 3. 儲存啟用VBA的活頁簿檔案
Thumbnail
通過VBA程式設計,我們可以實現對Word表格的快速、批量操作,提高文檔處理的效率和精度。在本文中,我們將介紹如何使用VBA為Word表格添加邊框、調整網底顏色等排版技巧,幫助您更好地完成文檔的美化和排版。
Thumbnail
我們將介紹如何根據自己的需要自定義操作流程,提高Word使用的效率和便捷性。在本文中,我們將介紹如何利用VBA在Word中自動插入底稿頁尾。