- ベストアンサー
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(?)のような…) もしあれば、お教えください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 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を使わずに、「どちらでもないならば」の方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- 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ステートメント
ASP(VBスクリプト)で条件付のサブルーチンを作りたいんですけど 10未満はAを表示 10以上20未満はB 20以上はCを表示させるサブルーチン sub test(p) select case p case p<10 response.write A case p>=10 and p<20 response.write B case p>=20 response.write C end select end sub で行ったけどだめでした。 助けてください
- ベストアンサー
- Microsoft ASP
- 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 じゃなくても、一つのメソッドで出来た気がするのですが、 わかる方いらっしゃいますか? ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 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ステートメントに戻るにはどうすればいいでしょうか? ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- For Each ~ Nextステートメント
今、1つのブックに200前後のワークシートがあるとします。 For Each ~ Nextステートメントを使って以下のようなプログラムを全てのワークシートに適用したいと考えています。 Sub test() Dim mySht As Worksheet For Each mySht In Worksheets If Range("A2").Value <> "1990/01/31" Then Rows("2:2").Select Selection.Insert Shift:=xlDown Range("A2").Select ActiveCell.FormulaR1C1 = "1990/01/31" End If If Range("A3").Value <> "1990/02/28" Then Rows("3:3").Select Selection.Insert Shift:=xlDown Range("A3").Select ActiveCell.FormulaR1C1 = "1990/02/28" End If ・・・(中略)・・・ Next End Sub しかし、これを実行しても、うまくいきません。 全てのワークシートについて、必ずしもA2のセルが 1990/01/31であるとは限らないことが原因かとは思うんですが、自身ではどうしてもうまくプログラムを書くことが できません。良いお知恵を拝借できればと思います。
- ベストアンサー
- オフィス系ソフト
- Excel マクロ ifステートメントでシート保護を判別するには?
こんにちは。 Excelでマクロを作成していますが、どうしても解らないので質問しました。 解る方いましたら回答よろしくお願いします。 ifステートメントで「シート保護」の有無を条件にしたいのですが、うまくいきません。 if activesheet.unprotect = true then 処理1 else 処理2 end if としていますが、「シート保護」の有無に関係なく、常に処理2となってしまいます。
- ベストアンサー
- オフィス系ソフト
- 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(エクセル)
- IFステートメントで半角でも全角でもtrueとさせ
IFステートメントで半角でも全角でもtrueとさせるには? Sub test1() Dim str As String str = "ABC"’←全角のA If str Like "*A*" Then ’←半角のA MsgBox "Aがあります" End If End Sub これで、半角Aもメッセージを表示させたいのですが、 マッチバイトみたいなのってありますか?
- ベストアンサー
- オフィス系ソフト
- 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 Not 値 Then~」の書き方でも問題は無いのですね。 別関数の例もわかりやすかったです。ありがとうございました。