VBAでフォームコントロールのチェックボックスのON・OFFを変更することは可能でしょうか。
具体的にはA.xlsmのマクロを実行して、
A.xlsmのセルA1が0ならB.xlsの"チェック 1"がOFF状態に。1ならON状態になる。
以上のような仕組みを作りたいです。
(フォームコントロールなのは様式(B.xls)がフォームコントールで作成されており、変更不可のため)
ですが、同じシート内でもチェックボックスのON・OFFができずに挫折しそうです。
まずは同一シート内で作ってみようと思い下記コードを作成したのですが、
”SubまたはFunctionが定義されていません”となってしまいます。
Public Sub test()
If Range("A1") = 0 Then
CheckBoxes("チェック 1").Value = False
ElseIf Range("A1") = 1 Then
CheckBoxes("チェック 1").Value = True
Else
MsgBox "無効な値が設定されています"
End If
End Sub
エラーは”CheckBoxes”のところで出てしまいます。
どなたかご教授ねがいます。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> エラーは”CheckBoxes”のところで出てしまいます。
いつから複数形で記述することになったのかな?
CheckBox("チェック 1").Value = False
と単数形に書き替えたらどうなりますか?
ありがとうございます。
いろいろ調べたら下記のコードでできました
Public Sub test()
If Range("A1") = 0 Then
With ActiveSheet.CheckBoxes("チェック 1")
.Value = xlOff
End With
ElseIf Range("A1") = 1 Then
With ActiveSheet.CheckBoxes("チェック 1")
.Value = xlOn
End With
Else
MsgBox "無効な値が設定されています"
End If
End Sub
No.2
- 回答日時:
2003だとエラーは出ずに正常に動きました。
以下のコードにしてみたらかがでしょうか
Shapes("Check Box 1").ControlFormat.Value = 1
TrueだとエラーでFalseはOkでした。
ありがとうございます。
いろいろやってみたら下記のコードでできました。
Public Sub test()
If Range("A1") = 0 Then
With ActiveSheet.CheckBoxes("チェック 1")
.Value = xlOff
End With
ElseIf Range("A1") = 1 Then
With ActiveSheet.CheckBoxes("チェック 1")
.Value = xlOn
End With
Else
MsgBox "無効な値が設定されています"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル関数を教えてください
-
UserForm1.Showでエラーになり...
-
マクロで"#N/A"のエラー行を削...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
インポート時のエラー「データ...
-
String""から型'Double'への変...
-
VB.net 重複チェックがしたいです
-
エクセルVBA 「On Error GoTo...
-
VBAでfunctionを利用しようとし...
-
「実行時エラー '3167' レコー...
-
ASPで、変数名に、変数を入れら...
-
変数にするとエラーになる理由は?
-
【Access】Excelインポート時に...
-
実行時エラー'-2147467259(8000...
-
Excel vbaについての質問
-
ADO 「認証に失敗しました」
-
マクロの「SaveAs」でエラーが...
-
【VB.NET】 パワポ操作を非表示で
-
ACCESSで値を代入できないとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
エクセルVBA 「On Error GoTo...
-
VBA データ(特定値)のある最...
-
実行時エラー'-2147467259(8000...
-
【VBA】ワークブックを開く時に...
-
VBでSQL文のUPDATE構文を使った...
-
ACCESSで値を代入できないとは?
-
マクロの「SaveAs」でエラーが...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
「実行時エラー '3167' レコー...
-
バッチファイルで、あるスクリ...
おすすめ情報