• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel】チェックボックス情報取得【VBA】)

【Excel】チェックボックス情報取得【VBA】

このQ&Aのポイント
  • ExcelでのVBAを使用して、チェックボックスの情報を取得する方法について説明します。
  • A1セルに1つのチェックボックスの状態に応じて適切なデータを入力する方法と、複数のチェックボックスの場合にはそれぞれの状態を示すデータを入力する方法を紹介します。
  • 詳しい手順は、参考にしたサイトのVBAコードを利用して説明します。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

では、適当に…… ・チェックが1つもない時は「A0」と表示します。 ・テキストが空でもチェックが入っていればデータありとして扱います。  例:ABCにチェック、テキストはBだけあり→「A111」と表示 Private Sub CommandButton1_Click()   Dim sAF, i, sData, sOne, nCount, nCMax, nTMax, nUMax, nData, vChk, sTxt      sAF = Split("A,B,C,D,E,F", ",") 'A~Fを配列に入れる   nCMax = 0 'チェック有りの最後   nTMax = 0 'テキスト有りの最後   nCount = 0 'チェックの総数   sData = "" 'セルA1に貼り付ける文字列(頭のAなし)   For i = 0 To UBound(sAF)     vChk = Me.Controls(sAF(i)).Value     sTxt = Me.Controls(sAF(i) & "Text").Value          sOne = "0"     'チェック有り     If vChk = True Then       sOne = "1"       nCount = nCount + 1       nCMax = i + 1     End If     'テキスト有りの最後確認用     If sTxt <> "" Then nTMax = i + 1     sData = sData & sOne   Next i   If nCount <= 1 Then     'チェックが1個以下の場合     sData = Format(nCMax, "0")   Else     'チェックが2個以上の場合     'チェックとテキストの、より後に有る方を使用     nUMax = nCMax     If nTMax > nCMax Then nUMax = nTMax     sData = Left(sData, nUMax)   End If   Range("A1") = "A" & sData End Sub

satoron666
質問者

お礼

回答ありがとうございました! やっと目的のものが作れそうな気がします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

補足願います。 チェックがされているが、対応するテキストボックスが空の時は? 例えば、チェックボックスABCにチェックが入っていて、テキストボックスBにしか文字列が入っていない場合。 チェックもテキストも入っていない場合は? それとも、そういう入力は出来無いようになっている?

satoron666
質問者

補足

回答ありがとうございます。 ATextに何も入力が無い場合は、 Exit Sub で終了する設定にしていますが、 それ以外のプログラムは入れていません。 必要だとは思いますが、 どんどんプログラム長くなってしまいそうなのと、 今の知識レベルだとそこまで難しいかと思いまして・・・ できれば、mt2008様がおっしゃるような プログラムも入れたいと思います。 知恵をお借りできればと思います。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A