前提・実現したいこと
Excelにて、チェックボックスを5列*600行セル(C6:G605)に1セルに1つずつ配置し、
配置したセルを「リンクするセル」(=チェック真偽を返す部分)として、
それを別の関数で参照したく思っています。
ただ、対象数が多く、オートフィルでは手動での設定変更が必要であることなどの問題が発生していることから、
指定セル範囲に
①フォームコントロールのチェックボックスで背景色など邪魔することなく、
②「リンクするセル」が自動で配置された各セルに設定した状態で
一気に配置できるようなVBAマクロをお教えいただきたく思っております。
自身でも調べてはおりますが、
どうかお力添えいただければと存じます。
発生している問題・エラーメッセージ
'オートフィルにてチェックボックスを複製した場合 チェックボックスの書式設定「リンクするセル」がコピー元と同一箇所に設定されてしまい、 コピーしたどのチェックボックスをチェックしてもコピー元と同じ個所がTRUEになってしまうようになった。 セル数が多いため、手動で設定しなおすのは時間がかかるので自動で各セルに設定されるようにしたい。 '下記VBAマクロで実行した場合 ActiveXチェックボックスが配置されてしまい、セルの背景色が見えなくなってしまった。
該当のソースコード
VBA
1Sub Check作成() 2Dim myChk As Object 3Dim i As Long 4Dim Sakuseisuu As Long 5Dim StartCell As Range 6 7'現在のブックのアクティブシートに作るにはこの下のWorkbooks.Addを消して下さい。 8'Workbooks.Add 9Sakuseisuu = 5 'チェックボックスの作成数 10Set StartCell = Range("C50") 'スタートする位置 11 12For i = 0 To Sakuseisuu - 1 13With StartCell.Offset(i) 14Set myChk = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ 15DisplayAsIcon:=False, _ 16Left:=.Left, Top:=.Top, _ 17Width:=.Width, Height:=.Height) 18End With 19With myChk 20.LinkedCell = StartCell.Offset(i, 0).Address 21.Object.Caption = "" '空白にするのは何でだったかなー? 22.Object.Value = False 23End With 24Next 25End Sub
補足情報(FW/ツールのバージョンなど)
MicrosoftExcel(M365)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。