Excel VBA質問箱 IV

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

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


4866 / 13646 ツリー ←次へ | 前へ→

【53944】Loopの中にLoopを入れたい こば 08/2/17(日) 10:52 質問[未読]
【53953】Re:Loopの中にLoopを入れたい VBWASURETA 08/2/18(月) 2:30 発言[未読]
【53966】Re:Loopの中にLoopを入れたい こば 08/2/18(月) 20:25 お礼[未読]
【53969】Re:Loopの中にLoopを入れたい VBWASURETA 08/2/19(火) 9:49 発言[未読]

【53944】Loopの中にLoopを入れたい
質問  こば  - 08/2/17(日) 10:52 -

引用なし
パスワード
   初めてVBAに挑戦しているのですが、Loopの中にLoopを入れたいのですがいくら探しても分かりません。どなたかお教えください。下が作成したものです。13行目の所です。幼稚な質問かもしれませんがよろしくお願いいたします。

Sub 自作()
  Application.ScreenUpdating = False   
  Sheets("2").Select 
  Range("HH2").Select
  Range(Selection, Selection.End(xlDown)).Select 
  Selection.Copy      
  Sheets("3").Select  
  Range("N39").Select   
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True      
  Sheets("2").Select        
  Range("HH2").Select 
※1. この部分を下の※2までいったらHH3、HH4・・・と空白がくるまでループさせたい。

  Selection.Copy   
  Range("HE1").Select  
  ActiveSheet.Paste    
  Range("HD40").Select  
  Range(Selection, Selection.End(xlDown)).Select 
  Range(Selection, Selection.End(xlToRight)).Select
  Application.CutCopyMode = False
  Selection.Copy   
  Sheets("3").Select  
  Range("J40").Select  
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False  
  Dim i As Integer
  i = 40            
  Do While Cells(i, 10) <> ""   
  Cells(i, 10).Select  
  Selection.Copy   
  Range("D3").Select 
  ActiveSheet.Paste     
  Cells(i, 11).Select  
  Range("E3").Select  
  ActiveSheet.Paste   
  Cells(i + 1, 8).Select  
  Selection.Copy    
  Cells(i + 1, 9).Select      
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False      
  i = i + 1               
  Loop
  Range("I41").Select             
  Range(Selection, Selection.End(xlDown)).Select 
  Selection.Copy              
  Range("l42").End(xlUp).Select     
  Selection.End(xlToRight).Offset(0, 1).Select  
  ActiveSheet.Paste    
         
※2ここで※1に戻ってループしたい
  Application.ScreenUpdating = True   
  
End Sub

【53953】Re:Loopの中にLoopを入れたい
発言  VBWASURETA  - 08/2/18(月) 2:30 -

引用なし
パスワード
   ▼こば さん:
こんばんは。

すみませんソースはあまり見てませんが、
ループの入れ子になっているのは結構ありますよ。
たとえば以下のようなサンプル等

行列毎の例:
 Dim Cel_X As Integer 'セル行変数
 Dim Cel_Y As Integer 'セル列変数

 Cel_X = 1:Cel_Y = 1

 'シート1のWithブロック
 With Sheets(1)
   '行ループ
   '.CellsはCells(行数, 列数)です。
   '例:.Cells(1, 1)はA1のセルにあたります
   Do While .Cells(Cel_X, Cel_Y).Value <> ""
     '** 処理1. **

     'セル列の初期化
     Cel_Y = 1

     '列ループ
     Do While .Cells(Cel_X, Cel_Y).Value <> ""
       '** 処理2. **

       'セル列変数のカウント
       Cel_Y = Cel_Y + 1

     Loop '列ループ終端

     'セル行変数のカウント
     Cel_X = Cel_X + 1

    Loop '行ループ終端

  End With 'Withブロック終端

【53966】Re:Loopの中にLoopを入れたい
お礼  こば  - 08/2/18(月) 20:25 -

引用なし
パスワード
   VBWASURETA さんありがとうございます。VBWASURETAのアドバイス参考になりました。入れ子なる言葉もはじめて聞きました。自分なりに解決してみます。ありがとうございました。

【53969】Re:Loopの中にLoopを入れたい
発言  VBWASURETA  - 08/2/19(火) 9:49 -

引用なし
パスワード
   ▼こば さん:
おはようございます。

もしかしたら、今は入れ子とは言わないのかも知れません^^;
ネスティングとか別かも知れません。

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