- ベストアンサー
チェックボックスのリンクするセル一括設定
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じ。 Sub Sample() Dim chk As CheckBox For Each chk In Worksheets("Sheet1").CheckBoxes chk.LinkedCell = "Sheet2!" & chk.TopLeftCell.Address Next End Sub
その他の回答 (2)
- HohoPapa
- ベストアンサー率65% (455/693)
https://okwave.jp/qa/q9966921.html の話と思います。 この時のコードは >チェックボックスが数10個あるので という条件で かつ、1行に複数のチェックボックスがあることを想定し提示したコードです。 つまり、99個以内です。 今回のケースであれば、後記コードでイケルと思います。 Sub sample() Dim sh As Shape Dim LineNum As Long For Each sh In ActiveSheet.Shapes If Left(sh.Name, 9) = "Check Box" Then '何行目にあるかを調べる LineNum = SearchR(sh.Top + (sh.Height / 2)) 'リンクセルを設定 sh.Select If sh.Left < Columns("C").Left Then Selection.LinkedCell = "Sheet2!$B$" & Format(LineNum, "0") ElseIf sh.Left < Columns("E").Left Then Selection.LinkedCell = "Sheet2!$D$" & Format(LineNum, "0") End If End If Next sh End Sub '縦位置から該当行番号を取得する関数 Function SearchR(MyTop As Double) As Long Const MaxRows = 10000 '最大行数 Dim r As Long For r = 1 To MaxRows If ((Cells(r, 1).Top < MyTop) And _ (Cells(r, 1).Top + Cells(r, 1).Height > MyTop)) Then SearchR = r Exit Function End If Next r End Function
- m3_maki
- ベストアンサー率64% (296/460)
> というVBAを作ると、B列のリンクが消えてしまいます。 どんなコードですか?
補足
載せるの忘れました。こちらのコードです。 https://okwave.jp/qa/q9966921.html