
「1から5の間なら」とするには?
エクセルvbaです。
Sub test1()
Dim i As Integer
i = 1
If i = 1 Or i = 2 Or i = 3 Or i = 4 Or i = 5 Then
MsgBox "1-5までのどれかです"
End If
End Sub
は、最大でも5なので手入力でできますが、
これが1から100までならor演算子で繋ぐのは大変なので
Sub test2()
Dim i As Integer
i = 1
If i = [1-5] Then
MsgBox "1-5までのどれかです"
End If
End Sub
みたいなことをやりたいのですが、うまくいきません。
デバッグしてもエラーにもなりません。
自分でコードを書いといて聞くのもおかしいですがtest2の意味と、表題の方法を教えてください。
よろしくお願いします。
No.5
- 回答日時:
VBAの本を読みましたか。
基礎的なことです。言語やその中の関数によってはBetweenという指定が出来るものもある、VBAでは使えない。
ですからAND条件でつないで表現する。
例えばExcelのシートの値の場合は
Sub test02()
For i = 1 To 5
If Cells(i, "A") >= 1 And Cells(i, "A") <= 100 Then
MsgBox "該当範囲内"
Else
MsgBox "該当範囲外"
End If
Next i
End Sub
ーー
Case文を使うなら、To が使えて
解説参照 http://homepage1.nifty.com/rucio/main/technique/ …
Sub test02()
For i = 1 To 5
Select Case Cells(i, "A")
Case 1 To 100
MsgBox "該当範囲内"
Case Else
MsgBox "該当範囲外"
End Select
Next i
End Sub
ーーー
[1-5] は何処から来たのかな。
No.4
- 回答日時:
5までくらいなら
「If i = 1 Or i = 2 Or i = 3 Or i = 4 Or i = 5 Then」
ですむけど
100までなら
「If i = 1 Or i = 2 Or i = 3 Or i = 4 Or i = 5 ....Or i = 99 Or i = 100 Then」
になるしこんなにいっぱい書いていられない。
「If i = [1-5] Then」
こんな記述があるのを知っているがうまくできていない。
できるなら
「If i = [1-100] Then」
にすればいいのに、
といったところでしょう?。
→Like演算子、between~and~を確認しておくと良いです。
1~100かというチェックでは、
IF文で大小判定するやり方と
100回分のループを実施し、存在したかどうかを判定するやり方と
大きく2つあります。
それより記載ロジックで
iが=1にしかなってないのも気になります。
No.3
- 回答日時:
こんばんは!
外していたらごめんなさい。
もしかして↓のような感じのことをやりたいのでしょうか?
Sub test()
Dim buf As String
buf = InputBox("1から100の数値を入力してください。")
If buf = "" Then Exit Sub
If buf >= 1 And buf <= 100 Then
MsgBox "入力した数値は、" & buf & "です。"
Else
MsgBox "入力値が正しくありません。"
End If
End Sub
参考になればよいのですが
的外れなら読み流してくださいね。m(__)m
No.2
- 回答日時:
■これなら反応します。
Sub test2()
Dim i As Integer
i = 1
If i Like "[1-5]" Then
MsgBox "1-5までのどれかです"
End If
End Sub
■1から100ならこんな方法の方が間違いないですが
Sub test2()
Dim i As Integer
i = 1
Select Case i
Case 1-100
MsgBox "1-100までのどれかです"
End Select
End sub
または
Sub test2()
Dim i As Integer
If i >= 1 And i <= 100 Then
MsgBox "1-100までのどれかです"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
片方のテーブルに無いデータを...
-
BULKINSERTのWITHオプションに...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
1日に1人がこなせるプログラム...
-
外部参照してるキーを主キーに...
-
access2003 クエリSQL文に...
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
特定の文字列で列を区切るには?
-
SQLで特定の項目の重複のみを排...
-
市区町村と番地を分けたいので...
-
for whichの使い方
-
SQLServerで文字列の末尾からあ...
-
select文のwhere句に配列を入れ...
-
エクセルの関数について教えて...
-
EXISTSを使ったDELETE文
-
入力値と外部キーをINSERTするには
-
Access:クエリーにて集計後に...
-
access2021 VBA メソッドまたは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BULKINSERTのWITHオプションに...
-
片方のテーブルに無いデータを...
-
データ突合のよい方法を教えて...
-
日付型項目のNULLについて(Pos...
-
【SQL】指定期間の合計、MAX...
-
DELETEについて(結合による)
-
Access 2000 サブクエリとJOIN
-
VBA 100億になると#が自動...
-
SQLServerでtime型への変換
-
SQL文について
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
特定の文字列で列を区切るには?
-
Outlook 送受信エラー
-
SQLで特定の項目の重複のみを排...
-
外部参照してるキーを主キーに...
-
1、Rstudioで回帰直線を求める...
-
カーソル0件の時にエラーを発生...
おすすめ情報