アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルVBAで”A3”セルに何か入力された時に、同じ行の”C3”セルにあるチェックボックスにチェックを入れる方法はありますでしょうか。
シートは、15シート有りその内1月から12月の12シートの”C”列にそれぞれ100個ほどあります。
中途半端な月からチェックボックスを配置してしまったので、チェックボックスのオブジェクト名に関係なく動くようにしたいです。
VBA勉強中です。
よろしくお願い致します。
-------------------------------------------------------
Private Sub Worksheet_Change()

If Range("A3") <> "" Then 'A3セルに何か入力されたら
ActiveSheet.CheckBoxes("Check Box 389").Value = True 'C列のチェックボックス
End If

End Sub

質問者からの補足コメント

  • ヒントありがとうございます。
    色々考えて下記のように記述してみましたが、
    A50セルに何か入力したところ
    C50セルのチェックボックスだけでなく
    C1セルから"C50"までのチェックボックスにチェックが入ってしまいました。
    A1からA49セルにはすでにデータが入っています。
    新たにA50セルにデータを入力したら"C50"セルにあるチェックボックスにチェックを入れたいです。
    よろしくお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/09/14 12:54
  • Private Sub Worksheet_Change()
    If Range("A50") <> "" Then 'A50セルに何か入力されたら
    For Each chkBox In ActiveSheet.CheckBoxes
    If Cells(chkBox.TopLeftCell.Row, "A") <> "" Then
    chkBox.Value = xlOn '
    End If
    NEXT chkBox
    End If
    End Sub

      補足日時:2022/09/14 12:55
  • 無事に解決しました。
    備忘録として下記、記載しておきます。
    文字制限為コメント無
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, ActiveSheet.Range("A1:A100")) Is Nothing Then
    Exit Sub
    ElseIf Target <> "" Then
    Dim chkBox As Excel.CheckBox
    For Each chkBox In ActiveSheet.CheckBoxes
    If chkBox.TopLeftCell.Row = ActiveCell.Row Then
    MsgBox chkBox.TopLeftCell.Address
    chkBox.Value = xlOn
    End If
    Next chkBox
    End If
    End Sub

      補足日時:2022/09/14 17:20

A 回答 (1件)

こんばんは。



すみませんが、ヒントだけになります。
下記を実行すると、シート上の全てのチェックボックスの左上が、どのセル
になるかのメッセージが表示されるかと思います。

Sub sample3()
  Dim sp As CheckBox
  For Each sp In ActiveSheet.CheckBoxes
    Msgbox sp.TopLeftCell.Address
  Next
End Sub

先ず基準を、チェックボックスにして、そのチェックボックスに対応した
セルの情報(入力の有無)を、チェックボックスに反映するという処理に
すればできるかと思います。
ActiveSheet.CheckBoxesは、表示しているワークシートが対象になります
ので、上記の処理を、12シート対応すれば、可能だと思います。

エクセルの神髄 第136回.フォームコントロール
https://excel-ubara.com/excelvba1/EXCELVBA436.html
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
試行錯誤の結果無事に動きました。

お礼日時:2022/09/14 17:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A