| 
    
     |  | 下記「ファイル1」のように、回答用シート(B列はブランク)を作成しました。ファイル1には同じシートが10人分=10シートあります。 
 次にB列に回答してもらった後、マクロを使って「ファイル2」のように各質問ごとのシートに変えました。つまり、1人目から10人目までの回答の入った質問のシートが質問数分あります。(質問数はそのときによって変わります)
 
 今回行いたいのは、1.このファイル2の各シートのC列にB列の文字数を入れ、2.各シートあるいはいずれかのシートに文字数の合計を入れる ということです。(2.はできれば)
 LEN関数を使うことを考えましたが、シート数が多いので、また、ファイル1からファイル2を作る際のマクロにつなげて一連の作業でしたいのです。過去ログを見ましたが、類似のものが見当たらず、行き詰っています。どうかご教授ください。
 
 ファイル2を作る際のコードは一番下に載せています。
 
 ファイル1-Sheet1(一人目)    ファイル1-Sheet2(二人目)…Sheet10まである
 A    B                 A    B
 1   Q1    ○○○(文字列)    1   Q1    ●●●●
 2   Q2    △△△△        2   Q2    ■■
 3   Q3    ◇◇          3   Q3    ▲▲▲
 ・   ・                ・    ・
 ・   ・                ・    ・
 ・   QX    ×××             QX    ???
 
 
 ファイル2-Sheet1(Q1のシート)…QXのシートまである
 A        B
 1    シート番号    回答
 2     1        ○○○
 ・     2        ●●●●
 ・     ・
 ・     ・
 11     10        \\\
 
 Option Explicit
 Sub 統合2()
 集約2
 分割2
 
 End Sub
 Private Sub 集約2()
 Dim shSource As Worksheet, rngSource As Range
 Dim bookSource As Workbook: Set bookSource = ActiveWorkbook
 Dim rngDestination As Range
 Set rngDestination = Workbooks.Add(xlWBATWorksheet).Sheets(1).Range("B2")
 rngDestination.Offset(-1, -1).FormulaR1C1 = "シート番号"
 rngDestination.Offset(-1, 0).FormulaR1C1 = "質問番号"
 rngDestination.Offset(-1, 1).FormulaR1C1 = "回答"
 
 For Each shSource In bookSource.Worksheets
 If True Then
 Set rngSource = shSource.UsedRange
 rngSource.Copy rngDestination
 rngDestination.Resize(rngSource.Rows.Count).Offset(, -1).Formula = shSource.Name
 Set rngDestination = rngDestination.Offset(rngSource.Rows.Count)
 End If
 Next
 End Sub
 Private Sub 分割2()
 Dim shDestination As Worksheet
 Dim shSource As Worksheet: Set shSource = ActiveSheet
 Dim vnt質問番号s As Variant, vnt質問番号 As Variant
 vnt質問番号s = Array("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9")
 For Each vnt質問番号 In vnt質問番号s
 Set shDestination = Sheets.Add
 shDestination.Name = vnt質問番号
 shSource.Range("A1").AutoFilter Field:=2, Criteria1:=vnt質問番号
 shSource.Range("A:A,C:D").Copy shDestination.Range("A1")
 Next
 Sheets(vnt質問番号s).Select
 
 End Sub
 
 
 |  |