|    | 
     先日はありがとうございました。再度ご教授頂きたいのですが。 
前回同様に常時開いているファイル(Sheet1)に記述されたマクロで他のファイルを開いた後、下記の動作をさせたいのですがうまくいきません。 
ファイル1〜100のA列、B列には何れも30行までデータが埋まっているとします。 
1.    ファイル1のA1〜A10の平均値 → 常時開いているファイルのB1に出力 
2.    ファイル1のA21〜A30の平均値 → 常時開いているファイルのB2に出力 
3.    ファイル1のB1〜B10の平均値 → 常時開いているファイルのC1に出力 
4.    ファイル1のB21〜B30の平均値 → 常時開いているファイルのC2に出力 
ファイル2以降についても、1.〜4.の要領で行う。但し出力先は、直前の出力した各セルの1つ下へ繋げて出力していきたいのです。 
前回に習って、上記動作部を下記の通りに書換えて実行しましたが、矢印の行でエラーとなります。 
どのようにしたらいいのかご教授頂ければ幸いです。 
Sub Macro1() 
 
Dim LastCell As Range, c As Range, Wb As Workbook, strFileName As String 
Dim i As Long, Co As Long 
 
With ThisWorkbook.Worksheets("Sheet1") 
から 
Set Wb = Workbooks.Open(strFileName & c.Value) 
まではファイルを開く部分で前回と同様です。以下は 
Wb.ActiveSheet.Range("C1").Activate 
      For X = 0 To 30 Step 20 
        Wb.ActiveCell.Value = _ ← この行が定義エラーとなる 
        Application.WorksheetFunction.Average(Wb.ActiveSheet.Range        (Cells(1 + X, 1), Cells(1 + X + 9, 1))) 
        ActiveCell.Offset(1, 0).Activate 
      Next X 
       
Wb.ActiveSheet.Range("D1").Activate 
      For X = 0 To 30 Step 20 
        Wb.ActiveCell.Value = _ 
        Application.WorksheetFunction.Average(Wb.ActiveSheet.Range        (Cells(1 + X, 2), Cells(1 + X + 9, 2))) 
        ActiveCell.Offset(1, 0).Activate 
      Next X 
         
      ↓Co=1としている 
        . Range(Cells(Co, 2), Cells(Co + 1, 3))= _         
        Wb.ActiveSheet.Range(Cells(1, 3), Cells(2, 4)) 
 
        Co = Co + 2 
       
       Wb.Close SaveChanges:=False 
       Set Wb = Nothing 
     End If 
   Next c 
   Application.ScreenUpdating = True 
End With 
Set LastCell = Nothing 
End Sub 
 | 
     
    
   |