• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「1から5の間なら」とするには?)

1から5の間ならとするには?

このQ&Aのポイント
  • ExcelのVBAを使用して、1から5の間かどうかを判定する方法を知りたいです。
  • 現在のコードは手入力で1から5までの数値をチェックしていますが、1から100までの場合はコードが複雑になってしまいます。
  • test2のコードでは、[1-5]という記述で1から5までの数値かどうかを判定しようとしていますが、うまく動作しません。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko1963
  • ベストアンサー率49% (127/258)
回答No.1

「1以上 かつ 5以下」ではダメなんですか?

1wer56
質問者

お礼

あっ....! そうですね。 ありがとうございました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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/Select.htm 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] は何処から来たのかな。

1wer56
質問者

お礼

ありがとうございました。

  • layy
  • ベストアンサー率23% (292/1222)
回答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にしかなってないのも気になります。

1wer56
質問者

お礼

ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答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

1wer56
質問者

お礼

ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答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

1wer56
質問者

お礼

ありがとうございました。