Excel VBA質問箱 IV

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

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


19399 / 76732 ←次へ | 前へ→

【62766】Re:条件分岐をLOOPで行う方法
発言  かみちゃん  - 09/8/30(日) 21:05 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>セル:G2が、[倉庫A] か [倉庫B] か [倉庫C] の場合、
>セル:K2に、担当者の [鈴木さん] を入力したいと、考えています。    
>
>データ量に関係無く、セルG2〜セルGの最終行まで、上記の条件分岐を
>LOOPで処理するには、どうしたらよいでしょうか?

繰り返し処理には、いろいろありますので、以下3案を示します。

'Do 〜 Loopを使う方法
Sub Sample1_1()
 Dim lngRow As Long
 Dim lngRowLast As Long

 With ActiveSheet
  lngRowLast = .Range("G" & .Rows.Count).End(xlUp).Row
  lngRow = 2
  Do While lngRow <= lngRowLast
   With .Range("G" & lngRow)
    Select Case .Value
     Case Is = "倉庫A", "倉庫B", "倉庫C"
      .Offset(, 4).Value = "鈴木さん"
     Case Is = "倉庫D", "倉庫E", "倉庫F"
      .Offset(, 4).Value = "山田さん"
     Case Is = "倉庫G", "倉庫H", "倉庫I"
      .Offset(, 4).Value = "森さん"
    End Select
   End With
   lngRow = lngRow + 1
  Loop
 End With
 
 MsgBox "終了しました"
End Sub

'For 〜 Nextを使う方法
Sub Sample1_2()
 Dim lngRow As Long
 Dim lngRowLast As Long

 With ActiveSheet
  lngRowLast = .Range("G" & .Rows.Count).End(xlUp).Row
  For lngRow = 2 To lngRowLast
   With .Range("G" & lngRow)
    Select Case .Value
     Case Is = "倉庫A", "倉庫B", "倉庫C"
      .Offset(, 4).Value = "鈴木さん"
     Case Is = "倉庫D", "倉庫E", "倉庫F"
      .Offset(, 4).Value = "山田さん"
     Case Is = "倉庫G", "倉庫H", "倉庫I"
      .Offset(, 4).Value = "森さん"
    End Select
   End With
  Next
 End With
 
 MsgBox "終了しました"
End Sub

'For 〜 Each 〜 Nextを使う方法
Sub Sample1_3()
 Dim rngLast As Range
 Dim c As Range

 With ActiveSheet
  Set rngLast = .Range("G" & .Rows.Count).End(xlUp)
  For Each c In .Range("G2", rngLast)
   Select Case c.Value
    Case Is = "倉庫A", "倉庫B", "倉庫C"
     c.Offset(, 4).Value = "鈴木さん"
    Case Is = "倉庫D", "倉庫E", "倉庫F"
     c.Offset(, 4).Value = "山田さん"
    Case Is = "倉庫G", "倉庫H", "倉庫I"
     c.Offset(, 4).Value = "森さん"
   End Select
  Next
 End With
 
 MsgBox "終了しました"
End Sub

1 hits

【62765】条件分岐をLOOPで行う方法 AT 09/8/30(日) 20:47 質問
【62766】Re:条件分岐をLOOPで行う方法 かみちゃん 09/8/30(日) 21:05 発言
【62777】Re:条件分岐をLOOPで行う方法 AT 09/9/1(火) 0:04 お礼

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