• 締切済み

教えて VBA(チェックボックス)利用の構文

VBA初心者なので教えてください。 仕事でEXEL VBA利用で user form を作ったのですが チェックボックス true なら エクセルデータに各項目欄に1を入力 falseならブランク としたいのですが なお1行に1つだけとは限らず、複数チェックが入る場合もあります。 チェックボックスが48個もあるので困っています。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 画像が小さくて詳細がよく判らないのですが、 とりあえずたたき台として・・・ >チェックボックスが48個もあるので困っています。 各CheckBoxはB列から順に対応しているとします。 Sheetの1行目はB列以降に各チェックボックスの「Caption」が入っているのですね? すなわち「CheckBox1」が「TRUE」の時はB2セルに「1」 「CheckBox2」が「TRUE」の時はC2セルに「1」を・・・ といった感じだと解釈しています。 尚、一番大切なのはCheckBoxのオブジェクト名なのですが、 そのまま CheckBox1・CheckBox2・CheckBox3・・・のように順番になっているとします。 どの行に「1」を入力するのか指定がないので、とりあえず2行目としています。 Private Sub CommandButton1_Click() Dim myNum As Long, myCtl For Each myCtl In Controls If Left(myCtl.Name, 8) = "CheckBox" Then myNum = Mid(myCtl.Name, 9, 2) If myCtl = True Then Cells(2, myNum + 1) = 1 '←2行目のみ操作 End If End If Next myCtl End Sub ※ Captionだけでなく、オブジェクト名も変わっている場合は オブジェクト名でコードを手直しする必要があります。m(_ _)m

yu-karankoron
質問者

お礼

早速ありがとうございます。 見にくくてすみません。 わかりやすく構文-1,-2,-3と添付ファイルを掲載させていただきましたので よろしくお願いします。

関連するQ&A