
エクセル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
No.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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
選択したセル範囲に入っているチェックボックスを全てOFFにしたい
Excel(エクセル)
-
(VBA)チェックボックスのclickのイベントが、プログラムからの操作でも反応してしまいます。
Visual Basic(VBA)
-
EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい
Visual Basic(VBA)
-
-
4
EXCELでチェックボックスに自動的にチェックを入れる方法
Excel(エクセル)
-
5
エクセル VBA CheckBox名に変数を使用
Excel(エクセル)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
8
エクセルでマクロを使わずに複数のチェックボックスに一括チェックするコマンドボタンを作れますか?
Excel(エクセル)
-
9
EXCELのシート上に埋め込んだチェックボックスの一括処理方法について
Excel(エクセル)
-
10
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
11
2つのマクロでチェックボックスが連動しません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自分の左隣のセル
-
EXCELのcountif関数での大文字...
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
エクセルで、指定の値よりも大...
-
週の労働時間を計算するエクセル
-
同一セル内の重複文字を削除し...
-
エクセル1行おきのセルを隣の...
-
条件付き書式の色付きセルのカ...
-
Excel 特定の倍数の個数を数え...
-
エクセルで特定のセル内にだけ...
-
空欄以外の最小値
-
エクセル 12進数
-
=SUBTOTAL に =COUNTIF の機能...
-
2003にSUMIFSがなくて困っ...
-
エクセルに入力後、別シートの...
-
AVERAGE関数とINDIRECT関数を使...
-
substitute関数についての質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
自分の左隣のセル
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
エクセル1行おきのセルを隣の...
-
EXCELのcountif関数での大文字...
-
同一セル内の重複文字を削除し...
-
エクセルで特定のセル内にだけ...
-
エクセルで、指定の値よりも大...
-
週の労働時間を計算するエクセル
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
【Excel】4つとばしで合計する方法
-
エクセルに入力後、別シートの...
-
条件付き書式の色付きセルのカ...
-
エラー「#REF」の箇所を置き換...
-
エクセルで年月日から月日のみへ
-
エクセル 12進数
-
一時間当たりの製造数を調べた...
おすすめ情報
ヒントありがとうございます。
色々考えて下記のように記述してみましたが、
A50セルに何か入力したところ
C50セルのチェックボックスだけでなく
C1セルから"C50"までのチェックボックスにチェックが入ってしまいました。
A1からA49セルにはすでにデータが入っています。
新たにA50セルにデータを入力したら"C50"セルにあるチェックボックスにチェックを入れたいです。
よろしくお願い致します。
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
無事に解決しました。
備忘録として下記、記載しておきます。
文字制限為コメント無
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