[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『チェックボックスの一括変更』(mini)
チェックボックスの一括変更をしたいのですが
以下のsh2.CheckBox(z).Value = False の部分で「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」となります。
どうすればいいですか?
教えてください。
Dim z As Integer
For z = 5 To 55 sh2.CheckBox(z).Value = False Next
< 使用 Excel:Excel2016、使用 OS:Windows10 >
これでできませんか。
(マナ) 2017/11/16(木) 00:00
CheckBoxes
ですが、ActiveXコントロールの方のチェックボックスなら、
OLEObjects
の方になるようです。
Sub test()
Dim o As OLEObject Dim objChk As MSForms.CheckBox
For Each o In ActiveSheet.OLEObjects With o If TypeName(.Object) = "CheckBox" Then Set objChk = .Object objChk.Value = False End If End With Next End Sub
※objChkはサンプル的には不要ですが、違いを理解するためあえて
変数を用意し代入してます。
(まっつわん) 2017/11/16(木) 11:04
Dim z As Integer
For z = 5 To 55 sh2.OLEObjects("CheckBox" & z).Value = False Next
(mini) 2017/11/16(木) 11:17
ですかね?
ちょっと饒舌な感じですがそういうルール(構造)なので・・・
(まっつわん) 2017/11/16(木) 11:38
あぁ、変数「sh2」にワークシートを代入してないと、
そういうエラーが出るようです。
変数の宣言すらもしてないのかな?
sh2ってなんですのん?
コードを全部提示してくれないと、なんでそういうことになるかが分かり難いです><
(まっつわん) 2017/11/16(木) 13:48
Sub checkbox_reset()
Dim sh1, sh2, sh3, sh4 As Worksheet Set sh1 = Worksheets(1) Set sh2 = Worksheets(2) Set sh3 = Worksheets(3) Set sh4 = Worksheets(4) 'チェックボックスのリセット Dim z As Integer For z = 5 To 55 sh2.OLEObject("CheckBox" & z).Object.Value = False Next
End Sub
(mini) 2017/11/16(木) 14:56
Dim sh1, sh2, sh3, sh4 As Worksheet
現状のコードだと、ワークシートオブジェクトの型で宣言されているのは、sh4のみです。
その書き方だと、他はVariant型になります。
Dim sh1 as worksheet, sh2 as worksheet, sh3 as worksheet, sh4 As Worksheet
としたらどうなるでしょうか?
(まっつわん) 2017/11/16(木) 16:06
エラーが出て止まったところで、
ローカルウィンドウのsh2を確認してみるといいと思います。
表示の意味が解らなければまた聞いて下さい。
(まっつわん) 2017/11/16(木) 16:11
sh2.OLEObject("CheckBox" & z).Object.Value = False ↓ sh2.OLEObjects("CheckBox" & z).Object.Value = False (きまぐれ) 2017/11/16(木) 16:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.