| 
    
     |  | ▼yumeyume さん: 
 >とりあえず、シート3用のマクロを記載して、シート4とシート5分もコピーしセルの値等を変えて、下記マクロを記載してみましたが、正しく動きません。
 >正しく検索して集計できているもの、出来ないものもあり。
 
 ということで、とりあえず、コードのうえのほうだけに限定して
 >Sub データ集計()
 >
 >Set sh2 = Workbooks("集計表.xlsm").Worksheets(2)
 >
 >'A支店のデータを集計
 >'マクロブックの3シート目のA列最終行を取得
 >mxr1 = ThisWorkbook.Worksheets(3).Range("A" & Rows.Count).End(xlUp).Row
 >For k = 2 To mxr1
 >'マクロブックの3シート目のC2セルから最終行までを集計票ブックのF6からF115のセルに記載の値と一致させる
 >MyR = Application.Match(ThisWorkbook.Worksheets(3).Cells(k, "C").Value, sh2.Range("F6:F115"), 0)
 > '一致したら
 > If IsNumeric(MyR) Then
 > 'myRに5を足した値
 > MyR2 = MyR + 5
 > Count = ThisWorkbook.Worksheets(3).Cells(k, "I").Value
 > 'マクロブックの3シート目のG列が「青森」であったら
 > If ThisWorkbook.Worksheets(3).Cells(k, "G").Value = "青森" Then
 > '集計表ブックのシート2のL列に初期入力値にマクロブックのシート3のIの値を足して入力
 > sh2.Cells(MyR2, "L").Value = sh2.Cells(MyR2, "L").Value + Count
 > 'マクロブックの3シート目のG列が「秋田」であったら
 > ElseIf ThisWorkbook.Worksheets(3).Cells(k, "G").Value = "秋田" Then
 > '集計表ブックのシート2のP列に初期入力値にマクロブックのシート3のIの値を足して入力
 > sh2.Cells(MyR2, "P").Value = sh2.Cells(MyR2, "P").Value + Count
 > 'マクロブックの3シート目のG列が「空白」であったら
 > 'A列の値を1シート目に転記する
 > ElseIf ThisWorkbook.Worksheets(3).Cells(k, "G").Value = " " Then
 > Set pastsaki = ThisWorkbook.Worksheets(1).Range("A1").Offset(BK)
 > pastsaki.Value = ThisWorkbook.Worksheets(3).Cells(k, "A").Value
 >
 >'データがなければ×をつける
 >Else
 >ThisWorkbook.Worksheets(3).Cells(k, "j").Value = "X"
 >
 >End If
 >End If
 >Next
 
 >End Sub
 
 インデントを付ける
 
 変数は宣言してから使う(宣言漏れを自動でチェックさせるために
 このコードを書いているモジュールの先頭に
 Option Explicit
 の宣言文を入れておく)
 
 ThisWorkbook.Worksheets(3) が何度もでてくるので、With句で くくる
 
 If ○○ = "青森" Then
 ElseIf ○○ = "秋田" Then
 ElseIf ○○ = 空白 Then
 Else
 End If
 
 という構文は
 
 Select Case ○○
 Case "青森"
 Case "秋田"
 Case 空白
 Case Else
 End Select
 
 という構文になおして ○○を何度も使わないようにまとめる
 
 などに注意して、表面的(字面だけ)直すと、こんな風です。
 
 ---------------------------------------------------標準モジュール
 Option Explicit
 
 Sub データ集計1()
 Dim sh2 As Worksheet, RangeF As Range, ValueL
 Dim mxr1 As Long
 Dim k As Long
 Dim MyR
 Dim Count As Long
 Dim BK As Long
 
 Set sh2 = Workbooks("集計表.xlsm").Worksheets(2)
 Set RangeF = sh2.Range("F6:F115")
 
 'A支店のデータを集計
 With ThisWorkbook.Worksheets(3) 'マクロブックの3シート目
 'A列最終行を取得
 mxr1 = .Range("A" & Rows.Count).End(xlUp).Row
 For k = 2 To mxr1 'C2セルから最終セルまで順に
 ' 集計表ブックのF6からF115範囲に マッチするセルがあるか?
 MyR = Application.Match(.Cells(k, "C"), RangeF, 0)
 
 If IsNumeric(MyR) Then '一致するセルがあったら
 Count = .Cells(k, "I").Value
 Select Case .Cells(k, "G").Value
 Case "青森" 'G列の値が「青森」であったら
 'sh2のL列に初期入力値に この行のIの値を足して入力
 RangeF.Item(MyR, 7).Value = RangeF.Item(MyR, 7) + Count
 
 Case "秋田" 'G列の値が「秋田」であったら
 'sh2のP列に初期入力値に この行のIの値を足して入力
 RangeF.Item(MyR, 11).Value = RangeF.Item(MyR, 11) + Count
 
 
 Case Empty 'G列の値が「空白」であったら----??
 'A列の値を1シート目に転記する
 ThisWorkbook.Worksheets(1).Range("A1").Offset(BK) _
 .Value = .Cells(k, "A").Value
 
 Case Else
 'データがなければ×をつける
 .Cells(k, "j").Value = "X"
 
 End Select
 End If
 Next
 
 End With
 
 End Sub
 
 ---
 以上のような構文で、ステップインで 処理を追っていってみてください。
 
 
 ---
 >'G列の値が「空白」であったら----??
 の部分は
 > Case Empty
 としてあります(ブランクセルだったら、と同じ)。
 このときの処理
 > Worksheets(1).Range("A1").Offset(BK)
 ↑この BK が何なのか、意味不明です。
 
 |  |