- ベストアンサー
ifステートメントで表現したいのですが、
- みんなの回答 (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文にこだわるのかなど)があれば、文章で質問に説明して質問すること。
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7418/18948)
>であってますか? 一つのIfステートメントでなら其の通りです。 Select Caseを使うなら Select Case i Case 65 To 90 処理 Case Else End Select Accessデータベースでなら、Betweenを使う方法もありますけど。。。
お礼
ありがとうございました。
不等号の方向を合わせて If 65 <= i AND i <=90 Then と書くやりかたもあります。
お礼
ありがとうございました。
- weavaest
- ベストアンサー率15% (157/1020)
オフィス系ソフトのカテなので、VBAの話ですよね。 比較対象の変数は"i"ですよね。 65以上かつ90以下ってことですよね。65以上または90以下であれば、条件式は不要ですよね。 これで良いと思います。スマートな書き方は思いつかないです。
お礼
ありがとうございました。
関連する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 としたら、問題なくできましたが、 [だけが含まれているかどうかを調べることは不可能なのでしょうか?
- ベストアンサー
- Excel(エクセル)
- 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(?)のような…) もしあれば、お教えください。
- ベストアンサー
- Visual Basic
- セルの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個 だし?) といった ことで お手数ですが
- ベストアンサー
- Visual Basic
- エクセルVBA Callステートメントについて教えてください。
いつもお世話になっております。 IF ○○○○ Then Call ○○○○なときのマクロ Else Call ××××なときのマクロ Endif というマクロを書きました。 (実際はかなり長くて複雑です) Callを使用すると、 見た目がすっきりする以外に何かメリット またはデメリットがあるのでしょうか。 以下の場合と何か異なるでしょうか? IF ○○○○ Then '○○○○なときのマクロの内容を記述 ~~~~~~~ Else '××××なときのマクロの内容を記述 ~~~~~~~ Endif ご教示いただければ幸甚です。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。