VBA のループ内で case ステートメント (または複数の if ステートメント) を作成するにはどうすればよいですか?
この例では、4 つの異なるグループに対応する 4 つの名前のリストがあります。名前はスプレッドシートの列「C」にあり、各個人のグループ名がリストされている列「D」という新しい列を作成したいと思います。
現時点で作業しているコードは次のとおりです。
Sub AddGroupColumn()
'Counts number of rows in sheet. Loops through rows.
For i = 1 To Range("C1048576").End(xlUp).Row
If Range("C2:C" & i).Value = "john.doe" Then
Set Range("D2:D" & i).Value = "group 1"
If Range("C2:C" & i).Value = "jane.doe" Then
Range("D2:D" & i).Value = "group 2"
If Range("C2:C" & i).Value = "james.doe" Then
Range("D2:D" & i).Value = "group 3"
If Range("C2:C" & i).Value = "jenn.doe" Then
Range("D2:D" & i).Value = "group 4"
Next i
End Sub
上記のコードを修正する方法について提案をお願いします。構文が正しくないことはわかっていますが、「If/Then/Else/Elseif」の「Case」ステートメントを使用する必要があるかどうかはわかりません。現在受け取っているエラーは次のとおりです。
コンパイル エラー: For なしの Next
また、この問題を解決するためのより効率的な方法があれば教えてください。実際には、12 個の名前、12 個のグループ、および 100,000 行の名前があります。