Excel VBA質問箱 IV

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

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


15725 / 76738 ←次へ | 前へ→

【66488】Re:ループ処理を教えてください
回答  Hirofumi  - 10/9/6(月) 6:10 -

引用なし
パスワード
   あ!、「Sub Sample_4」は

Public Sub Sample_5()

  Dim i As Long
  Dim j As Long
  Dim vntMark As Variant
  Dim vntSheets As Variant
  Dim vntComp As Variant
  
  vntSheets = Array("い", "う", "え", "お")
  vntComp = Array("A", "B", "C")
  
  With Worksheets("あ")
    vntMark = .Range("G1").Value
    For i = 0 To UBound(vntComp, 1)
      If vntMark = vntComp(i) Then
        For j = 0 To UBound(vntSheets, 1)
          Worksheets(vntSheets(j)).Columns(i + 1).Copy _
              Destination:=.Columns(j + 1)
        Next j
        Exit For
      End If
    Next i
  End With
  
End Sub

と書くのが一般的なのかも解りませんが(If文が1つ少ない)
もし、入力が条件に合わない場合等

Public Sub Sample_6()

  Dim i As Long
  Dim j As Long
  Dim vntMark As Variant
  Dim vntSheets As Variant
  Dim vntComp As Variant
  
  vntSheets = Array("い", "う", "え", "お")
  vntComp = Array("A", "B", "C")
  
  With Worksheets("あ")
    vntMark = .Range("G1").Value
    For i = 0 To UBound(vntComp, 1)
      If vntMark = vntComp(i) Then
        Exit For
      End If
    Next i
    '条件以内なら
    If i <= UBound(vntComp, 1) Then
      For j = 0 To UBound(vntSheets, 1)
        Worksheets(vntSheets(j)).Columns(i + 1).Copy _
            Destination:=.Columns(j + 1)
      Next j
    Else
      MsgBox "G1セルの入力が条件に合いません", vbInformation
    End If
  End With
  
End Sub

合う場合と合わない場合で並べて書けるので、私は「Sample_4」の様に書きます
1 hits

【66485】ループ処理を教えてください Gobou 10/9/5(日) 23:27 質問
【66487】Re:ループ処理を教えてください Hirofumi 10/9/6(月) 5:18 回答
【66488】Re:ループ処理を教えてください Hirofumi 10/9/6(月) 6:10 回答
【66489】Re:ループ処理を教えてください Yuki 10/9/6(月) 15:43 発言

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