| 
    
     |  | 初めて投稿します。VBA初心者ですよろしくお願いします。 
 コードの見た目を分かりやすくしようと、Withステートメントをつかって効率を図ろうとしているのですが、どうもうまくいきません。
 具体的には、
 
 With Worksheets("報告書")
 
 Dim i As Integer
 Dim a As Integer
 
 i = Range("t6").Value
 a = 0
 
 Do
 (中略)
 If i > 0 Then
 
 MsgBox (中略)
 
 Range("e8").Value = InputBox("入力してください。", 件数枠", "0")
 a = a + Range("e8").Value
 
 (以下同様なことが続くので 中略)
 
 End If
 
 
 Loop Until i = a
 
 End With
 
 といった具合です。
 すると、「報告書」のワークシートで処理をして欲しいのに、アクティブシートで処理されてしまうので、困っています。
 
 基本的なことが理解できていないような気が自分でもしてます。
 WithステートメントはDo〜Loopのステートメントを含むことが出来ないのでしょうか?
 それとも根本的に複数のステートメントの組合せ自体がタブーなのでしょうか?
 
 どなたかお教えください。お願いします。
 
 
 |  |