• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでCheckboxの名前を変数にとって値を調べたい)

Excel VBAでCheckboxの名前を変数にとって値を調べる方法

このQ&Aのポイント
  • Excel VBAでCheckboxの名前を変数にとって値を調べる方法を紹介します。
  • シートに配置された複数のCheckboxの名前とOn,Offの値を調べる方法について説明します。
  • 指定した名前のCheckboxの値を取得するためには適切なタイプの変数を使用する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答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 '-------------------------------------------------- 以上。  

obone
質問者

お礼

onlyrom様 ActiveSheet.OLEObjects("CheckBox" & N).Object.Value を使わせていただきました。 ありがとうございました。

その他の回答 (2)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答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を使っています。 これは、一緒の話、クラスの親が違うだけ、親によって、格納される場所が違うと言うのは、最初の話

  • Dxak
  • ベストアンサー率34% (510/1465)
回答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を足し算するのは?なぜ?

obone
質問者

補足

>ActiveSheet.Shapes(i)に、Valueは有りません Checkboxがチエックされたかどうかは.ValueがTrueかFalseになるのではなかったですか? (ActiveSheet.Checkbox1.Value=True) > i=0 iは入力間違いでした。 動的配列なのでiiとかでした。 書いていませんでしたがフォームのCheckboxではなく コントロールチエックボックスのCheckboxを使っています。

関連するQ&A

専門家に質問してみよう