Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7923 / 13644 ツリー ←次へ | 前へ→

【36043】If の条件式より簡単な方法があれば教え... かわちゃん 06/3/20(月) 0:18 質問[未読]
【36046】Re:If の条件式より簡単な方法があれば教え... ぱっせんじゃー 06/3/20(月) 8:03 発言[未読]
【36056】Re:If の条件式より簡単な方法があれば教え... バンザイ 06/3/20(月) 10:59 発言[未読]

【36043】If の条件式より簡単な方法があれば教え...
質問  かわちゃん E-MAIL  - 06/3/20(月) 0:18 -

引用なし
パスワード
   皆様申し訳御座いません・・
文字で説明するのがヘタクソの為、自分の書いたプログラムを下記に貼り付けました。

何がしたいかと言うと、

1, TextBox1=3か4ならばTextBox1_2のテキスト数字に1を足す。
  TextBox1が空白ならば何もしない。
  それをTextBox1からTextBox20まで同じ処理を繰り返す。

2, TextBox1=7ならばTextBox1_2にTextBox1_2 足す TextBox_Customerの数字を入 れる。
  それを同じくTextBox1からTextBox20まで同じ処理を繰り返す。
  もしTextBox1から20までに"7"が無い場合はTextBox1から順番に空白のTextBoxを見付け次第TextBoxに7を入れてTextBox?_1にTextBox_Customerの数字を入れる。

の上記2つのプログラムをボタンクリックで実行したいのですが、下記のプログラムの様にずっと書いて行くと凄くデーター量が多いくなるので、何か簡単な方法がないかと思い助けを求めております m(_ _)m

Sub ButtonA_Click()

Dim MS60 As Integer
Dim CN As Integer
Dim TBB1 As String
Dim TBB2 As String

TBB1 = 3
TBB2 = 4
MS60 = 7
CN = TextBox_Customer.Caption

  '一個目の計算
  If TextBox1 <> "" Then
    If TextBox1.Text = 3 Or 4 Then
      TextBox1_2.Text = TextBox1_2.Text + 1
    End If
  End If
  If TextBox2.Text <> "" Then
    If TextBox2.Text = 3 Or 4 Then
      TextBox2_2.Text = TextBox2_2.Text + 1
    End If
  End If
  If TextBox3.Text <> "" Then
    If TextBox3.Text = 3 Or 4 Then
      TextBox3_2.Text = TextBox3_2.Text + 1
    End If
  End If
        ・
        ・さらにTextBox20まで続く
        ・

  '別の計算
  If TextBox1 = MS60 Then
    TextBox1_2.Text = TextBox1_2.Text + CN - 1
  ElseIf TextBox1 = "" Then
    TextBox1 = MS60
    TextBox1_2 = CN
    GoTo End_Sub
  ElseIf TextBox2 = MS60 Then
    TextBox2_2 = TextBox2_2 + CN - 1
  ElseIf TextBox2 = "" Then
    TextBox2 = MS60
    TextBox2_2 = CN
    GoTo End_Sub
  ElseIf TextBox3 = MS60 Then
    TextBox3_2 = TextBox3_2 + CN - 1
  ElseIf TextBox3 = "" Then
    TextBox3 = MS60
    TextBox3_2 = CN
    GoTo End_Sub

        ・
        ・さらにTextBox20まで続く
        ・
  Else
    MsgBox ("該当無し")
  End If

  End_Sub:

End Sub

よろしくお願いします。

【36046】Re:If の条件式より簡単な方法があれば教...
発言  ぱっせんじゃー  - 06/3/20(月) 8:03 -

引用なし
パスワード
   条件が増えるとコードが多くなるのは変わりませんが、

条件分岐が多いときは、

Select Case

を使うとコードが分かりやすくなると思います。

【36056】Re:If の条件式より簡単な方法があれば教...
発言  バンザイ  - 06/3/20(月) 10:59 -

引用なし
パスワード
   ・TextBox?が3か4なら、TextBox?_2+1
・TextBox?が7なら、TextBox?_2+textbox_customer
ってだけをやってみたけど

ベタ打ちしたから打ち間違いとかあったらゴメンなさいね。

for i=1 to 20
  if me.contorls("textbox" & i).value=3 or me.controls("textbox" & i).value=4 then
    me.controls("textbox" & i & "_2").value=me.controls("textbox" & i & "_2").value+1
  elseif me.contorls("textbox" & i).value=7 then
    me.controls("textbox" & i & "_2").value=me.controls("textbox" & i & "_2").value+textbox_customer.value
  end if
next i

7923 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free