Excel VBA質問箱 IV

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

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


23277 / 76732 ←次へ | 前へ→

【58824】Re:文字列が選択肢の中に含まれるかを1行で評価したい。
発言  kanabun  - 08/11/12(水) 18:36 -

引用なし
パスワード
   ▼りった さん:
> Dim s As String
> s = getXXX
> if s = AAA or s = BBB or s = CCC then
> は、1行でかけない点が不満です。パッと見も解かりづらい。

その AAA とか BBB とか、CCC は 変数ですか?
変数なら、宣言しなくちゃ。
> Dim s As String
 Dim AAA as string
 Dim BBB as string
 Dim CCC as string
 Select Case s
  Case AAA, BBB, CCC
    Msgbox "あり"
  Case Else
    Msgbox "なし"
 End Select

> getXXXを3回も書くので処理速度及びメンテナンス性の面でいまいちです。
>
1行で書くと処理速度が速くなるわけじゃないですよ。
> if getXXX = AAA or getXXX = BBB or getXXX = CCC then
と書くより、
 if getXXX = AAA then
    Msgbox "あり"
 elseif getXXX = BBB then
    Msgbox "あり"
 elseif getXXX = AAA then
    Msgbox "あり"
 else
    Msgbox "なし"
 end if
のほうが、少なくとも判断する回数は少なくて済みます。

理由は
> if getXXX = AAA or getXXX = BBB or getXXX = CCC then
のほうは、getXXX = AAA が True(真)のときでも、
2番目、3番目の判断↓
  if getXXX = BBB ?
  if getXXX = CCC ?
も必ず実行するからです。

2 hits

【58821】文字列が選択肢の中に含まれるかを1行で評価したい。 りった 08/11/12(水) 17:02 質問
【58822】Re:文字列が選択肢の中に含まれるかを1行で... Hirofumi 08/11/12(水) 18:25 回答
【58823】Re:文字列が選択肢の中に含まれるかを1行で... りった 08/11/12(水) 18:35 質問
【58824】Re:文字列が選択肢の中に含まれるかを1行で... kanabun 08/11/12(水) 18:36 発言
【58825】Re:文字列が選択肢の中に含まれるかを1行で... kanabun 08/11/12(水) 18:40 発言
【58826】Re:文字列が選択肢の中に含まれるかを1行で... りった 08/11/13(木) 9:08 お礼

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