Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8191 / 13644 ツリー ←次へ | 前へ→

【34592】複数の条件のうち一つでも満たせば実行しない k 06/2/7(火) 20:25 質問[未読]
【34593】Re:複数の条件のうち一つでも満たせば実行... Kein 06/2/7(火) 20:34 回答[未読]
【34595】Re:複数の条件のうち一つでも満たせば実行... k 06/2/7(火) 21:13 質問[未読]
【34616】Select Caseステートメントでワイルドカー... k 06/2/8(水) 11:36 質問[未読]
【34620】Re:Select Caseステートメントでワイルドカ... やっちん 06/2/8(水) 12:07 発言[未読]
【34621】Re:Select Caseステートメントでワイルドカ... Jaka 06/2/8(水) 12:33 発言[未読]
【34623】Re:Select Caseステートメントでワイルドカ... Kein 06/2/8(水) 12:50 回答[未読]
【34647】Re:Select Caseステートメントでワイルドカ... k 06/2/9(木) 10:08 お礼[未読]
【34634】Re:複数の条件のうち一つでも満たせば実... 下っ端 06/2/8(水) 17:02 発言[未読]
【34648】If Not (A Or B) Thenの意味 k 06/2/9(木) 10:11 質問[未読]
【34652】Re:If Not (A Or B) Thenの意味 やっちん 06/2/9(木) 11:07 発言[未読]
【34704】Re:If Not (A Or B) Thenの意味 k 06/2/10(金) 9:27 お礼[未読]

【34592】複数の条件のうち一つでも満たせば実行し...
質問  k  - 06/2/7(火) 20:25 -

引用なし
パスワード
   複数の条件のうち一つでも満たせば実行しないようなコードを書きたいと思っています。

security_typ(i) = Worksheets("E").Cells(i, 16).Value
If Not (security_typ(i) = "PUBLIC" Or security_typ(i) = "PRIVATE" Or ~略~)Then
ホニャララ

とすればいいと思ったのですが、結果が予想通りになりません。

If Not (A Or B) Then
は「AでもBでもない時」という意味ではないのですか?

【34593】Re:複数の条件のうち一つでも満たせば実...
回答  Kein  - 06/2/7(火) 20:34 -

引用なし
パスワード
   Select Case Worksheets("E").Cells(i, 16).Value
  Case "PUBLIC", "PRIVATE", ~略~
  Case Else
   何かの処理
End Select

というようなコードで良いと思います。

【34595】Re:複数の条件のうち一つでも満たせば実...
質問  k  - 06/2/7(火) 21:13 -

引用なし
パスワード
   Keinさん、レスありがとうございました。
【34592】で省略して書いた部分ですが、実は
security_typ(i) = Worksheets("E").Cells(i, 16).Value
security_Name(i) = Worksheets("E").Cells(i, 1).Value
If Not (security_typ(i) = "PUBLIC" Or security_typ(i) = "PRIVATE" Or (security_Name(i) Like "*PREFERRED*" And Not security_typ(i) = "#N/A")) Then

となっています。
SELECT Caseを2段構えにする、というのはなんとなく予想がつくのですが、
If Not (・・・ Or ・・・ Or (・・・ And Not ・・・)) Then
をSelect Caseステートメントでどうやってあらわすのか分かりません。

(すみません、私「省略して書いた部分ですが、実は・・・」ってパターン多いですよね。以後投稿する時は気をつけます。)

【34616】Select Caseステートメントでワイルドカ...
質問  k  - 06/2/8(水) 11:36 -

引用なし
パスワード
   >If Not (・・・ Or ・・・ Or (・・・ And Not ・・・)) Then
>をSelect Caseステートメントでどうやってあらわすのか分かりません。

自己レスですが
Select Case Worksheets("E").Cells(i, 16).Value
  Case "PUBLIC", "PRIVATE"
  Case "#N/A"
   Select Case Worksheets("E").Cells(i, 1).Value
   Case "*PREFERRED*"
   何かの処理
   End Select   
End Select

という風にすればよいと気づきました。
と、ここで思ったのですが、Select Caseステートメントでワイルドカードって使えないですよね?

Case "*PREFERRED*" の部分に「Worksheets("E").Cells(i, 1).ValueにPREFERREDの文字が含まれれば」という意味をもたせるにはどうしたらよいのでしょうか。

【34620】Re:Select Caseステートメントでワイルド...
発言  やっちん  - 06/2/8(水) 12:07 -

引用なし
パスワード
   ▼k さん:
そこの部分だけはIFでもいいのではないですか?

【34621】Re:Select Caseステートメントでワイルド...
発言  Jaka  - 06/2/8(水) 12:33 -

引用なし
パスワード
   条件わかってないけど...。

If security_typ(i) <> "PUBLIC" And security_typ(i) <> "PRIVATE" Then

【34623】Re:Select Caseステートメントでワイルド...
回答  Kein  - 06/2/8(水) 12:50 -

引用なし
パスワード
   結果としては

With Worksheets("E")
  If .Cells(i, 16).Value = "#N/A" And _
  .Cells(i, 1).Value Like "*PREFERRED*" Then
   何かの処理
  End If
End With

ということになりますね。

【34634】Re:複数の条件のうち一つでも満たせば実...
発言  下っ端  - 06/2/8(水) 17:02 -

引用なし
パスワード
   横レスですが

Select Case True
    Case security_typ(i) = "PUBLIC"
    Case security_typ(i) = "PRIVATE"
    Case (  (security_typ(i) <> "#N/A")
       AND (security_Name(i) Like "*PREFERRED*")
       )
    Case Else
        -全条件のNotを満たす→処理-
End Select

これじゃまずいかな?

【34647】Re:Select Caseステートメントでワイルド...
お礼  k  - 06/2/9(木) 10:08 -

引用なし
パスワード
   Select Case Worksheets("E").Cells(i, 16).Value
  Case "PUBLIC", "PRIVATE"
  Case "#N/A"   
  If Worksheets("E").Cells(i, 1).Value Like "*PREFERRED*" Then GoTo Line1
  Case Else
  
Line1:
何かの処理

If その他実行したくない場合の条件 Then GoTo LastLine
LastLine:
End Select

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

【34648】If Not (A Or B) Thenの意味
質問  k  - 06/2/9(木) 10:11 -

引用なし
パスワード
   やっちんさん、Jakaさん、Keinさん、下っ端さんレスありがとうございました。

最後にひとつだけ気になっていることが・・・。
If Not (A Or B) Then
は「AでもBでもない時」という意味ではないのですか?

【34652】Re:If Not (A Or B) Thenの意味
発言  やっちん  - 06/2/9(木) 11:07 -

引用なし
パスワード
   ▼k さん:
>If Not (A Or B) Then
>は「AでもBでもない時」という意味ではないのですか?
そうです。
分解すると
If Not (A) And Not (B) Then

【34704】Re:If Not (A Or B) Thenの意味
お礼  k  - 06/2/10(金) 9:27 -

引用なし
パスワード
   やっちんさん、レスありがとうございました。

8191 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free