では、適当に……
・チェックが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
お礼
回答ありがとうございました! やっと目的のものが作れそうな気がします。