このVBA、もうちょっとシンプルにできないですか?
自力でVBAを書いてみたのですが、長くなってしまいました。
もうちょっとシンプルにするアイディアがあればお願いします。
やりたいことは、
(1)ユーザーフォームのテキストボックス内が空欄だったら「無視」
(2)テキストボックスの中が空欄でなければ「書き込み」
以上のことをやりたいのですが、テキストボックスが6種類あるので単純に記述すると結構長くなってしまいました。
特に問題がなければ、その旨をお願いします。
If TextBox1 = "" Then
If TextBox2 = "" Then
If TextBox3 = "" Then
If TextBox4 = "" Then
If TextBox5 = "" Then
If TextBox6 = "" Then
MsgBox ("得点が入力されていません。")
ElseIf TextBox6 <> "" Then
Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value
End If
ElseIf TextBox5 <> "" Then
Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value
ElseIf TextBox6 <> "" Then
Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value
End If
End If
ElseIf TextBox4 <> "" Then
Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value
If TextBox5 <> "" Then
Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value
If TextBox6 <> "" Then
Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value
End If
End If
End If
ElseIf TextBox3 <> "" Then
Sheets("総合(得点)").Cells(t + 6, u) = TextBox3.Value
If TextBox4 <> "" Then
Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value
If TextBox5 <> "" Then
Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value
If TextBox6 <> "" Then
Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value
End If
End If
End If
End If
ElseIf TextBox2 <> "" Then
Sheets("総合(得点)").Cells(t + 5, u) = TextBox2.Value
If TextBox3 <> "" Then
Sheets("総合(得点)").Cells(t + 6, u) = TextBox3.Value
If TextBox4 <> "" Then
Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value
If TextBox5 <> "" Then
Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value
・
・
・
こんな感じで規則的に記述しただけです。(文字数が多いので最後は省略しました)
段差がなくて見づらいですが、宜しくお願いします。
お礼
お返事頂きましてありがとうございました。 おっしゃる通り確認の仕方が悪かったようです。 If tBox = テキスト1 Then 処理 Else If tBox = テキスト2 Then 処理 End if という処理を後で行っていたのですがこれがうまくいきませんでした。 そこで If tBox.Name = "テキスト1" Then ・・・ 以下略 とすることで目的の動作を行うことができました。 ありがとうございました。