Excel VBAでCheckboxの名前を変数にとって値を調べたいのです.
シートにCheckboxがたくさん貼ってあり名前とOn,Offを調べたいのですが下記では名前は調べられてもOn,Offが確認できないのですが
On,Offを別変数にとる場合タイプはなににすればいいでしょうか。
たとえば
dim i as integer
dim checkname()
dim checvalue() as ????
i=0
for i=1 to 2
If Mid(ActiveSheet.Shapes(i).Name, 1, 5) = "Check" Then
i=i+1
redim preserve checkname(i)
checkname(i)=ActiveSheet.Shapes(i).Name
redim preserve checvalue(i)
checvalue(i)=ActiveSheet.Shapes(i).value <---これではエラー
end if
next i
No.3ベストアンサー
- 回答日時:
Shape、OleObjectなど知らなくても使える方法は
CheckBoxのLinkedCellプロパティを使うことです。
CheckBox1 の LinkedCell を セルF1
CheckBox2 の LinkedCell を セルF2
CheckBox3 の LinkedCell を セルF3 にセットしておくと
CheckBoxのOn、OffがF1~3のセルに表示されますのでそれを使えば簡単ですね
'-------------------------------------------
Sub test222()
Dim N As Integer
Dim myValue(3)
For N = 1 To 3
myValue(N) = Cells(N, "F").Value
Next N
End Sub
'------------------------------------------
それからObjectの意味が分かって使うなら、次のコード。
(LindedCellプロパティは使用しない)
'-------------------------------------------------
Sub test333()
Dim N As Integer
Dim myValue(3)
For N = 1 To 3
myValue(N) = ActiveSheet.OLEObjects("CheckBox" & N).Object.Value
Next N
End Sub
'--------------------------------------------------
以上。
onlyrom様
ActiveSheet.OLEObjects("CheckBox" & N).Object.Value
を使わせていただきました。
ありがとうございました。
No.2
- 回答日時:
> Checkboxがチエックされたかどうかは.ValueがTrueかFalseになるの
> ではなかったですか?
多分、デバッグの方法が判ってれば、型がウォッチで判りますので、こういう質問が出ることは無いのですが・・・
CheckBox型であれば、.Valueで値が取得可能ですが・・・
> ActiveSheet.Checkbox1
は、CheckBox/CheckBox
> ActiveSheet.Shapes(i)
は、Object/Shape
要するに、Shape型に、値があるはずもなく、描画しているチェックボックスの型
ActiveSheet.Shapes(i).DrawingObject.Object
まで、CheckBoxの型を追いかけなければ、出てきません
まずは、デバッグのやり方を覚えないと、基礎の基礎が判らないまま、手探りでVBAを組むようになりますよ
> 書いていませんでしたがフォームのCheckboxではなく
> コントロールチエックボックスのCheckboxを使っています。
これは、一緒の話、クラスの親が違うだけ、親によって、格納される場所が違うと言うのは、最初の話
No.1
- 回答日時:
例えばで
Dim usObj As Object
For Each usObj In ActiveSheet.Shapes
If usObj.Name Like "Check*" Then
Debug.Print usObj.Name, usObj.DrawingObject.Object.Value
End If
Next usObj
そもそも論、
ActiveSheet.Shapes(i)に、Valueは有りません
デバッグの方法、判ります?
それが判ってれば、こんな話質問するまでも無いと思うけど?
あと
> i=0
は、For文で初期化してるから無駄
> i=i+1
For文の中で、iを足し算するのは?なぜ?
この回答への補足
>ActiveSheet.Shapes(i)に、Valueは有りません
Checkboxがチエックされたかどうかは.ValueがTrueかFalseになるのではなかったですか?
(ActiveSheet.Checkbox1.Value=True)
> i=0
iは入力間違いでした。
動的配列なのでiiとかでした。
書いていませんでしたがフォームのCheckboxではなく
コントロールチエックボックスのCheckboxを使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
Excel2007 でのチェックボックスの名称
Visual Basic(VBA)
-
EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい
Visual Basic(VBA)
-
-
4
エクセル VBA CheckBox名に変数を使用
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
CheckBoxの配列化
Access(アクセス)
-
7
エクセルでObjectがあるセル番地を取得するマクロは?
Excel(エクセル)
-
8
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
(VBA)チェックボックスのclickのイベントが、プログラムからの操作でも反応してしまいます。
Visual Basic(VBA)
-
11
フォームのCheck boxとOLEObjectのCheckboxのマクロの違い?
PowerPoint(パワーポイント)
-
12
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
<EXCEL> セルが非表示になったらチェックボックスも非表示にする方法
Excel(エクセル)
-
15
checkboxの値の取得方法
Excel(エクセル)
-
16
UserForm1.Showでエラーになります。
工学
-
17
VBAのエラーについて、”実行時エラー424オブジェクトが必要です”
Excel(エクセル)
-
18
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
19
エクセルVBAでチェックボックスにチェックを入れる
Excel(エクセル)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
Excelで空白セル直前のセルデー...
-
特定の色のついたセルを削除
-
VBAでユーザーフォームにセル値...
-
Excel UserForm の表示位置
-
VBA 複数条件の分岐処理の上手...
-
Excel VBA IF文がうまく動作し...
-
【Excel VBA】一番右端セルまで...
-
下記のマクロの説明(意味)を...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA にて、条件付き書式で背景...
-
Excel VBAで特定の範囲の空白セ...
-
入力規則のリスト選択
-
Excel VBAでCheckboxの名前を変...
-
SPREAD.netで選択セルの合計を...
-
C# DataGridViewで複数選択した...
-
エクセルの合計を自動で表示さ...
-
DataGridViewのフォーカス遷移...
-
VBA コンボボックスで選んだも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報