Excel VBA質問箱 IV

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

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


3778 / 13645 ツリー ←次へ | 前へ→

【60248】Select Caseないの処理について En 09/2/5(木) 21:41 質問[未読]
【60251】Re:Select Caseないの処理について kanabun 09/2/5(木) 22:11 発言[未読]
【60252】Re:Select Caseないの処理について En 09/2/5(木) 22:31 お礼[未読]

【60248】Select Caseないの処理について
質問  En  - 09/2/5(木) 21:41 -

引用なし
パスワード
   B列を検索のキーとして、C列に答えをかえすコードをつくりました

  Dim val As Variant
  Dim r As Range
 
  For Each r In Range("B5:B50")
    Select Case r.Value
      Case "AAA": val = 10
      Case "BBB": val = 20
      Case "CCC": val = 30
    End Select
    r.Offset(, 1).Value = val
  Next

B列の文字が「FFAAAJJ」のようなときも、C列には「10」とかえしたいのですが、
うまくコードを組むことができません・・・
検索値が含まれていればという感じです

また、B列が空白のときはこたえも空白にしたいのでが、
こちらもうまくコードを組むことができません・・・

ご教授よろしくお願い致します。

【60251】Re:Select Caseないの処理について
発言  kanabun  - 09/2/5(木) 22:11 -

引用なし
パスワード
   ▼En さん:

>B列の文字が「FFAAAJJ」のようなときも、C列には「10」とかえしたいのですが、

「AAA」を含む文字列かどうかの判定は

▼Like演算子とか、
Sub Try1()
  Dim r As Range
  Dim ss As String
  Dim v
  For Each r In Range("B5:B50")
    ss = r.Value
    v = Empty
    Select Case True
     Case ss Like "*AAA*":  v = 10
     Case ss Like "*BBB*":  v = 20
     Case ss Like "*CCC*":  v = 30
    End Select
    r.Offset(, 1).Value = v
  Next
End Sub

▼InStr関数 を使えばいいとおもいます。

Sub Try2()
  Dim r As Range
  Dim ss As String
  Dim v
  For Each r In Range("B5:B50")
    ss = r.Value
    v = Empty
    If InStr(ss, "AAA") Then
      v = 10
    ElseIf InStr(ss, "BBB") Then
      v = 20
    ElseIf InStr(ss, "CCC") Then
      v = 30
    End If
    r.Offset(, 2).Value = v
  Next
End Sub

Sub Try3()
  Dim r As Range
  Dim ss As String
  Dim v
  For Each r In Range("B5:B50")
    ss = r.Value
    r.Offset(, 3).Value = _
       Switch(InStr(ss, "AAA"), 10, _
          InStr(ss, "BBB"), 20, _
          InStr(ss, "CCC"), 30, _
          1, Empty)
  Next
End Sub

【60252】Re:Select Caseないの処理について
お礼  En  - 09/2/5(木) 22:31 -

引用なし
パスワード
   ▼kanabun さん:

Like演算式、勉強になりました
他の機会でも使えそうです
ありがとうございました

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