[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
留言分享你的想法!
avatar-img
Meiko微課頻道的沙龍
156會員
50內容數
Meiko微課頻道主要以辦公室應用為出發點,針對上班族群所遇到的問題進行分享
2025/04/06
本篇文章分享如何使用 Excel VBA 程式碼去除 Excel 儲存格裡文字或英文句子前後的空白,提供【基礎版】和【進階版】兩種 VBA 程式碼範例,並比較其功能差異。進階版程式碼可以保留句子中間的空白,只去除句子頭尾的空白。文章也包含程式碼下載連結以及相關參考資源。
Thumbnail
2025/04/06
本篇文章分享如何使用 Excel VBA 程式碼去除 Excel 儲存格裡文字或英文句子前後的空白,提供【基礎版】和【進階版】兩種 VBA 程式碼範例,並比較其功能差異。進階版程式碼可以保留句子中間的空白,只去除句子頭尾的空白。文章也包含程式碼下載連結以及相關參考資源。
Thumbnail
2025/03/18
本文說明如何使用Excel函數 SUMPRODUCT 和 IFERROR 和 SUBSTITUTE 解決數值加總顯示問題,並提供檔案範例和公式說明。此外,文章還包含一些與【太極拳】相關的參考資料連結。
Thumbnail
2025/03/18
本文說明如何使用Excel函數 SUMPRODUCT 和 IFERROR 和 SUBSTITUTE 解決數值加總顯示問題,並提供檔案範例和公式說明。此外,文章還包含一些與【太極拳】相關的參考資料連結。
Thumbnail
2025/01/08
本篇文章提供一個利用 Excel VBA 和 Google Map API,自動計算起迄地址里程數的解決方案。分享開發過程的心路歷程,以及如何克服使用Google Map API的挑戰,並感謝 Meiko老師 的教學 和 ChatGPT o1 pro 的協助,並提供檔案免費下載。
Thumbnail
2025/01/08
本篇文章提供一個利用 Excel VBA 和 Google Map API,自動計算起迄地址里程數的解決方案。分享開發過程的心路歷程,以及如何克服使用Google Map API的挑戰,並感謝 Meiko老師 的教學 和 ChatGPT o1 pro 的協助,並提供檔案免費下載。
Thumbnail
看更多
你可能也想看
Thumbnail
過去,在Excel中使用核取方塊時,我們常受限於其大小,一直無法輕易調整。最近的E365版本解決了這個問題,但舊版本的Excel卻沒有這個新功能。因此,在這裡,Meiko將跟同學們分享如何在新舊版本中輕鬆放大核取方塊,而且不受數量的限制。 實際操作請參考影片教學,影片中提供的語法請參考本篇文章
Thumbnail
過去,在Excel中使用核取方塊時,我們常受限於其大小,一直無法輕易調整。最近的E365版本解決了這個問題,但舊版本的Excel卻沒有這個新功能。因此,在這裡,Meiko將跟同學們分享如何在新舊版本中輕鬆放大核取方塊,而且不受數量的限制。 實際操作請參考影片教學,影片中提供的語法請參考本篇文章
Thumbnail
教大家怎麼快速選取 excel 中的大量空格,詳細圖文解說
Thumbnail
教大家怎麼快速選取 excel 中的大量空格,詳細圖文解說
Thumbnail
以前的EXCLE核取方塊真的無敵無敵難用的,要到開發人員中尋找,而且設定起來超級麻煩,每一個核取方塊都要一個一個去做設定。 如果需要很多的核取方塊就需要設定非常久,而且也很難對齊,做完之後一堆核取方塊都歪歪的😱 不過現在有一個好消息了,微軟最近更新了核取方塊,這功能的新增讓EXCE
Thumbnail
以前的EXCLE核取方塊真的無敵無敵難用的,要到開發人員中尋找,而且設定起來超級麻煩,每一個核取方塊都要一個一個去做設定。 如果需要很多的核取方塊就需要設定非常久,而且也很難對齊,做完之後一堆核取方塊都歪歪的😱 不過現在有一個好消息了,微軟最近更新了核取方塊,這功能的新增讓EXCE
Thumbnail
Excel 是辦公室中最常用的軟體之一,在許多職場工作中都會用到。在使用 Excel 時,如果能掌握一些快捷鍵技巧,可以幫助我們快速完成工作,提高工作效率。其中「Ctrl+E」 ​快捷鍵更是Excel 中一個非常實用的快捷鍵,它可以用來完成多種操作。以下是一些常用的功能
Thumbnail
Excel 是辦公室中最常用的軟體之一,在許多職場工作中都會用到。在使用 Excel 時,如果能掌握一些快捷鍵技巧,可以幫助我們快速完成工作,提高工作效率。其中「Ctrl+E」 ​快捷鍵更是Excel 中一個非常實用的快捷鍵,它可以用來完成多種操作。以下是一些常用的功能
Thumbnail
Excel 是工作中常用的表格軟體,用來整理和分析數據。在日常工作中,我們經常會遇到需要將英文大小寫進行快速變換的情況。 例如,我們需要將產品名稱中的英文全部轉換為大寫,或者將客戶姓名中的英文全部轉換為小寫。如果按照傳統的方法,需要手動逐個修改,非常耗時,又麻煩。 轉換:英文字母大小寫快速變換
Thumbnail
Excel 是工作中常用的表格軟體,用來整理和分析數據。在日常工作中,我們經常會遇到需要將英文大小寫進行快速變換的情況。 例如,我們需要將產品名稱中的英文全部轉換為大寫,或者將客戶姓名中的英文全部轉換為小寫。如果按照傳統的方法,需要手動逐個修改,非常耗時,又麻煩。 轉換:英文字母大小寫快速變換
Thumbnail
當今,Excel已成為許多工作和業務領域中不可或缺的工具之一。今天要來介紹「自動添加Excel表格刪除框線的方法」,這個方法不僅節省時間,還提高了工作效率,再輸入的時候不用重複調整,一起來來瞭解吧~ 首先選取需要自動設定的【表格區域】,再點選【常用】中的【條件式格式設
Thumbnail
當今,Excel已成為許多工作和業務領域中不可或缺的工具之一。今天要來介紹「自動添加Excel表格刪除框線的方法」,這個方法不僅節省時間,還提高了工作效率,再輸入的時候不用重複調整,一起來來瞭解吧~ 首先選取需要自動設定的【表格區域】,再點選【常用】中的【條件式格式設
Thumbnail
利用【字型】來設計【核取方塊】,再加入 Excel VBA 來模擬【儲存格連結】的功能 !
Thumbnail
利用【字型】來設計【核取方塊】,再加入 Excel VBA 來模擬【儲存格連結】的功能 !
Thumbnail
怎麼把 表單控制項 的 核取方塊 變大 ? 這是個很久很久以前就遇過的問題,根據查得的資訊顯示,至今約莫 11 年前就有人提過這問題了。 本篇將介紹一套 VBA 方法來達成。
Thumbnail
怎麼把 表單控制項 的 核取方塊 變大 ? 這是個很久很久以前就遇過的問題,根據查得的資訊顯示,至今約莫 11 年前就有人提過這問題了。 本篇將介紹一套 VBA 方法來達成。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News