Excel VBA質問箱 IV

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

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


68534 / 76738 ←次へ | 前へ→

【12739】VBAで文字数カウントしたいのですが(長...
質問  ima  - 04/4/13(火) 17:04 -

引用なし
パスワード
   下記「ファイル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

0 hits

【12739】VBAで文字数カウントしたいのですが(長... ima 04/4/13(火) 17:04 質問
【12744】Re:VBAで文字数カウントしたいのですが(長... ichinose 04/4/13(火) 19:11 回答
【12755】Re:VBAで文字数カウントしたいのですが(... ima 04/4/14(水) 11:23 質問
【12784】Re:VBAで文字数カウントしたいのですが(... ichinose 04/4/14(水) 19:09 発言
【12802】Re:VBAで文字数カウントしたいのですが(... ima 04/4/15(木) 13:42 質問
【12814】Re:VBAで文字数カウントしたいのですが(... ichinose 04/4/15(木) 21:32 回答
【12839】Re:VBAで文字数カウントしたいのですが(... ima 04/4/16(金) 17:29 質問
【12861】Re:VBAで文字数カウントしたいのですが(... ichinose 04/4/17(土) 11:50 発言
【12910】Re:VBAで文字数カウントしたいのですが(... ima 04/4/19(月) 16:23 お礼
【12840】Re:VBAで文字数カウントしたいのですが(... ima 04/4/16(金) 17:33 発言

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