• ベストアンサー

ifステートメントで表現したいのですが、

65以上、90以下ならをifステートメントで表現したいのですが、 If i >= 65 And i <= 90 Then endif であってますか? もっとスマートな書き方があった気がしたのですが・・・

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

こんなところへ、すぐ質問しないで実例でやってみたら。 解説本にもこの程度のことなら例として載っているように思う。VBかVBAの質問かも書いてないよ。 VBAなら A1:A100までのセルに1から100の連続番号を入れて 標準モジュールに Sub test01() Dim i, j As Integer For j = 1 To 100 i = Worksheets("Sheet1").Range("A" & j) If i >= 65 And i <= 90 Then ’ <--質問のコード部分 Range("B" & j) = "Y" End If '<--質問のコード部分 Next j End Sub を実行してYの入った行を見れば, 視覚的に正しいかどうか確認できるだろう。 VBでもIF文のかきかた、ANDの使い方として可能なはず。 SQLと違ってBetweenは使えないと思う。 Case文で記述するのが明解とは思う。 ーー もっと深い質問理由(なぜIF文にこだわるのかなど)があれば、文章で質問に説明して質問すること。

CVHZUDKON
質問者

お礼

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

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

>であってますか? 一つのIfステートメントでなら其の通りです。 Select Caseを使うなら Select Case i Case 65 To 90 処理 Case Else End Select Accessデータベースでなら、Betweenを使う方法もありますけど。。。

CVHZUDKON
質問者

お礼

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

noname#212058
noname#212058
回答No.2

不等号の方向を合わせて If 65 <= i AND i <=90 Then と書くやりかたもあります。

CVHZUDKON
質問者

お礼

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

  • weavaest
  • ベストアンサー率15% (157/1020)
回答No.1

オフィス系ソフトのカテなので、VBAの話ですよね。 比較対象の変数は"i"ですよね。 65以上かつ90以下ってことですよね。65以上または90以下であれば、条件式は不要ですよね。 これで良いと思います。スマートな書き方は思いつかないです。

CVHZUDKON
質問者

お礼

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

関連するQ&A

  • ExitでIFステートメントを抜けたい

    Sub test() Dim n As Byte, i As Byte For i = 0 To 5   If n = 0 Then    n = n + 1   Else    Exit For '(1)ここから   End If i = i + 1 '(2)ここへ来たい(IFステートメントだけ抜けたい) Next i End Sub のように(1)から(2)へ行きたいのですが このコードを実行すると Forステートメントを抜けてしまい、マクロが終了してしまいます。 「Exit If」にするとエラーになってしまいます。 Exitを使用してIFステートメントだけ抜け、 Forステートメントに戻るにはどうすればいいでしょうか? ご教授よろしくお願いします。

  • IFステートメントの使い方 どちらでもないならば

    「出金も入金も0じゃないならば」としたい場合、どのようなifステートメントを作ればいいでしょう? Sub test() Dim 出金 As Currency Dim 入金 As Currency 出金 = 0 入金 = 0 '(1) If Not (出金 = 0) And Not (入金 = 0) Then MsgBox "出金0入金0ではありません" End If '(2) If (出金 = 0) And (入金 = 0) Then Else MsgBox "出金0入金0ではありません" End If End Sub (1)だとうまくいきません。 (2)のように Elseを使って対応するしかないのでしょうか? (2)でいけますが、今後の勉強の為にelseを使わずに、「どちらでもないならば」の方法を教えてください。

  • VBA IFステートメントがうまくできません

    Sub tset1() Dim URL As String URL = "http://oshiete.coneco.net/mypage#tabs" If URL Like "http://oshiete.coneco.net/mypage#tabs" Then MsgBox "成功!" End If End Sub を実行すると、URL の値は"http://oshiete.coneco.net/mypage#tabs"なのに、 "成功!"が表示されません。 #が曲者のような気がしますが、これ以上わかりません。 URL = "http://oshiete.coneco.net/mypage"にすれば、うまくいきした。 #があっても、IFステートメントが使えるようにするにはどうすればいいでしょうか? ご回答よろしくお願いします。

  • if ステートメントについて質問

    今ifステートメントについて勉強してるのですが 自分が調べた感じではこのように書いてありました。 If condition Then [statements] [ElseIf condition-n Then [elseifstatements]] . . . [Else [elsestatements]] End If しかし、以前に作った掲示板のメイン処理のあたりを見てみると、↑のようでなく if ($mode eq "howto") { &howto; } elsif ($mode eq "find") { &find; } elsif ($mode eq "usr_del") { &usr_del; } ・ ・ ・ 見たいな感じです。これは今自分が勉強しているところと違うところですか?

    • ベストアンサー
    • Perl
  • ifステートメントで、[が含まれるかどうかを調べた

    ifステートメントで、[が含まれるかどうかを調べたいのですが ****************************** Sub test1() Dim myStr As String myStr = "[aaa]" If myStr Like "*[*" Then MsgBox "[を含んでいます。" End If End Sub ****************************** をやろうとすると 「実行時エラー93 パターン文字列が不正です」 となってしまいます。 ヘルプを見ると ************************************************************ 検索の Like 演算子で指定されているパターン文字列が無効です。 エラーの原因と対処方法を次に示します。 たとえば、文字リスト式 [a-b は、右かっこ (]) がないため、無効です。 リスト式の文字を確認します。 詳細については、目的の項目を選択して F1 キー (Windows) または Help キー (Macintosh) を押してください。 ************************************************************ との事なので、 If myStr Like "*[*]" Then としたら、問題なくできましたが、 [だけが含まれているかどうかを調べることは不可能なのでしょうか?

  • For~Nextステートメント  途中で止めるには

    For~Nextステートメント で、変数が5なら止めたいのですがIFを使わない方法があったと思うのですが、 忘れてしまいました。 今は、 +++++++++++++++++++++++++++++ Sub test() Dim i As Long For i = 2 To 10 If i = 5 Then Stop End If Next End Sub +++++++++++++++++++++++++++++ としていますが、 If i = 5 Then Stop End If じゃなくても、一つのメソッドで出来た気がするのですが、 わかる方いらっしゃいますか? ご回答よろしくお願いします。

  • ifステートメント notと!は同じ意味ですか?

    VBAのifステートメントで、notと!は同じ意味ですか? 「a」で始まらない。 と言う意味で、下記のコードを作ったのですが、どちらも思い通りの結果が得られます。 If "あabc" Like "[!a-z]*" Then Debug.Print "OK" End If If Not "あabc" Like "[a-z]*" Then Debug.Print "OK" End If End Sub ネットからのサンプルをコピペしたので、いまいち理解できてないのですが notと!は同じ意味ですか?

  • Selectステートメントの入れ子について

    Ifステートメントで  If 条件1   If 条件2 … とするのが見づらいと思い、Notをつけて並べてみました。 Sub ()  If Not 条件1 Then    End Sub  End If  If Not 条件2 Then    End Sub  End If  処理 End Sub これをSelectステートメントで行いたいのですが、入れ子にしないで書く方法はあるのでしょうか? (Select Not(?)のような…) もしあれば、お教えください。

  • セルのIF分の質問です

    セルに入れる IF分を 教えてください NGを 分解してみたのですが・・・・ =IF(N3=1,then     -M2, else     IF(K2=1, then       IF(M2<P3-M3, then          M2      Else         P3-M3,       endif      else          IF(K2=-1,then           IF(M2<M3-P3,then               M2,           Else               M3-P3,            endif         else            0         endif)       endif) endif) N3 は 1 もしくは 0。 K2 は 1,-1,0 の3通りです IF が 5個ですから ) も 5個?(ENDIF も 5個 だし?) といった ことで お手数ですが

  • エクセルVBA Callステートメントについて教えてください。

    いつもお世話になっております。 IF ○○○○ Then Call ○○○○なときのマクロ Else Call ××××なときのマクロ Endif というマクロを書きました。 (実際はかなり長くて複雑です) Callを使用すると、 見た目がすっきりする以外に何かメリット またはデメリットがあるのでしょうか。 以下の場合と何か異なるでしょうか? IF ○○○○ Then '○○○○なときのマクロの内容を記述 ~~~~~~~ Else '××××なときのマクロの内容を記述 ~~~~~~~ Endif ご教示いただければ幸甚です。

専門家に質問してみよう