[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/12/08(Fri) 13:29
投稿者名:asahi
Eメール:
URL :
タイトル:
if文をまとめる方法
if分の処理を1つにまとめて表示したいのですが、どのようにすればいいでしょうか?
よろしくお願いいたします。

If InStr(1, Replace(b, "-", ""), ".") = 4 Then
If InStr(1, b, "-") Then
a = b
Else
a = " " & b
End If
ElseIf InStr(1, Replace(b, "-", ""), ".") = 3 Then
If InStr(1, b, "-") Then
a = " " & b
Else
a = "  " & b
End If
ElseIf InStr(1, Replace(b, "-", ""), ".") = 2 Then
If InStr(1, b, "-") Then
a = "  " & b
Else
a = "   " & b
End If
End if

投稿時間:2006/12/08(Fri) 14:20
投稿者名:
Eメール:
URL :
タイトル:
Re: if文をまとめる方法
私ならこんな感じにしますかね。

InStr(1, Replace(b, "-", ""), ".") の値を変数(仮にx)に入れて、
xが2〜4の範囲であるかのIf、
その中でbに"-"が含まれているかのIf、
含まれていれば a = Space(4 - x) & b
含まれていなければ a = Space(5 - x) & b

これで8行ほどで記述できるかと思いますがどうでしょう?

投稿時間:2006/12/08(Fri) 16:55
投稿者名:K・今川
Eメール:
URL :
タイトル:
Re: if文をまとめる方法
> if分の処理を1つにまとめて表示したいのですが、どのようにすればいいでしょうか?
「1つにまとめて表示」の意味がよくわからないのですが
プログラムを短く分かり易くしたいと言うことなら
内部のIF文を次のように先に処理するだけでも短くなりますよ。

If InStr(1, b, "-") Then
        a = ""
Else
        a = " "
End If

If     InStr(1, Replace(b, "-", ""), ".") = 4 Then
        a = a & b
ElseIf InStr(1, Replace(b, "-", ""), ".") = 3 Then
        a = a & " " & b
ElseIf InStr(1, Replace(b, "-", ""), ".") = 2 Then
        a = a & "  " & b
End if

投稿時間:2006/12/08(Fri) 21:00
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re: マルチ先の方がやりたい事は分かる
Visual Basic 中学校さんでも書き込んでるみたいですが、
http://www2.moug.net/bbs/program/20061206000002.htm
が一番詳しいですかね。