Excel VBA質問箱 IV

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

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


3454 / 13644 ツリー ←次へ | 前へ→

【62118】複数シートをひとつのシートにまとめる 初心者です 09/6/23(火) 16:39 質問[未読]
【62119】Re:複数シートをひとつのシートにまとめる つん 09/6/23(火) 17:17 発言[未読]
【62121】Re:複数シートをひとつのシートにまとめる 初心者です 09/6/23(火) 17:30 質問[未読]
【62122】Re:複数シートをひとつのシートにまとめる つん 09/6/23(火) 17:41 回答[未読]
【62123】Re:複数シートをひとつのシートにまとめる 初心者です 09/6/23(火) 17:50 お礼[未読]

【62118】複数シートをひとつのシートにまとめる
質問  初心者です  - 09/6/23(火) 16:39 -

引用なし
パスワード
   たびたびお世話になっています。
複数のシートをひとつにまとめたいのですが
構文エラーが出てしまいます。
どなたか教えていただけますでしょうか?
よろしくお願いいたします。

Sub test4()
Dim WS_TOTAL As Worksheet
Dim WS_1 As Worksheet
Dim WS_2 As Worksheet
Dim WS_3 As Worksheet
Dim WS_4 As Worksheet
Dim WS_5 As Worksheet
Dim WS_6 As Worksheet

Set WS_TOTAL = Worksheets("シート作成")
Set WS_1 = Worksheets("Sheet1")
Set WS_2 = Worksheets("Sheet2")
Set WS_3 = Worksheets("Sheet3")
Set WS_4 = Worksheets("Sheet4")
Set WS_5 = Worksheets("Sheet5")
Set WS_6 = Worksheets("Sheet6")


If WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
  WS_TOTAL.Rows("1:" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
End If


If WS_1.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
  WS_1.Rows("1:" & WS_1.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
     WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
  If WS_2.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
   WS_2.Rows("1:" & WS_2.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
       WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
   If WS_3.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
     WS_3.Rows("1:" & WS_3.Cells(Rows.Count, 1).End(xlUp).Row).Copy
        
        ↓が構文エラーと出ます。
         WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)


     If WS_4.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
      WS_4.Rows("1:" & WS_4.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
         WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
      If WS_5.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
        WS_5.Rows("1:" & WS_5.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
           WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        If WS_6.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
         WS_6.Rows("1:" & WS_6.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
             WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        End If
      End If
     End If
   End If
    
  End If
End If
   
Set WS_TOTAL = Nothing
Set WS_1 = Nothing
Set WS_2 = Nothing
Set WS_3 = Nothing
Set WS_4 = Nothing
Set WS_5 = Nothing
Set WS_6 = Nothing


End Sub

【62119】Re:複数シートをひとつのシートにまとめる
発言  つん  - 09/6/23(火) 17:17 -

引用なし
パスワード
   ▼初心者です さん:
こんにちは^^

>たびたびお世話になっています。
どの「初心者さん」かわかりませんが^^;

>Sub test4()
>Dim WS_TOTAL As Worksheet
>Dim WS_1 As Worksheet
>Dim WS_2 As Worksheet
>Dim WS_3 As Worksheet
>Dim WS_4 As Worksheet
>Dim WS_5 As Worksheet
>Dim WS_6 As Worksheet
>
>Set WS_TOTAL = Worksheets("シート作成")
>Set WS_1 = Worksheets("Sheet1")
>Set WS_2 = Worksheets("Sheet2")
>Set WS_3 = Worksheets("Sheet3")
>Set WS_4 = Worksheets("Sheet4")
>Set WS_5 = Worksheets("Sheet5")
>Set WS_6 = Worksheets("Sheet6")
>
>
>If WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>  WS_TOTAL.Rows("1:" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
>End If
>
>
>If WS_1.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>  WS_1.Rows("1:" & WS_1.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
>     WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>  If WS_2.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>   WS_2.Rows("1:" & WS_2.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
>       WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>   If WS_3.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
      この↓の行の末尾に、「_」が抜けてるからちゃいますか?
>     WS_3.Rows("1:" & WS_3.Cells(Rows.Count, 1).End(xlUp).Row).Copy
>        
>        ↓が構文エラーと出ます。
>         WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>
>
>     If WS_4.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>      WS_4.Rows("1:" & WS_4.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
>         WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>      If WS_5.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>        WS_5.Rows("1:" & WS_5.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
>           WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>        If WS_6.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
>         WS_6.Rows("1:" & WS_6.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
>             WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
>        End If
>      End If
>     End If
>   End If
>    
>  End If
>End If
>   
>Set WS_TOTAL = Nothing
>Set WS_1 = Nothing
>Set WS_2 = Nothing
>Set WS_3 = Nothing
>Set WS_4 = Nothing
>Set WS_5 = Nothing
>Set WS_6 = Nothing
>
>
>End Sub

【62121】Re:複数シートをひとつのシートにまとめる
質問  初心者です  - 09/6/23(火) 17:30 -

引用なし
パスワード
   ありがとうございます!!
すっかり見落としていました。
動くようになりました。

もう一つ質問をしてもいいでしょうか?

シートにデータがない場合、コピーされないのですが
データがないシートは飛ばして、他のシートのコピーを続けたい場合はどうしたらいいのでしょうか?
続けざまに申し訳ありません。

【62122】Re:複数シートをひとつのシートにまとめる
回答  つん  - 09/6/23(火) 17:41 -

引用なし
パスワード
   >シートにデータがない場合、コピーされないのですが
>データがないシートは飛ばして、他のシートのコピーを続けたい場合はどうしたらいいのでしょうか?

えーと
今は

If WS_1.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then

で、「Sheet1」が4行以上ないと、そく終了!
って形になってますよね?

If WS_1.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
  WS_1.Rows("1:" & WS_1.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
     WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If

If WS_2.Cells(Rows.Count, 1).End(xlUp).Row > 3 Then
  WS_2.Rows("1:" & WS_1.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
     WS_TOTAL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If

以下続く・・・


って形で、一つのシートずつ処理してったらどうですか?

【62123】Re:複数シートをひとつのシートにまとめる
お礼  初心者です  - 09/6/23(火) 17:50 -

引用なし
パスワード
   ありがとうございます。
無事、シートが一つにまとまりました。
大変助かりました。

親切な対応、ありがとうございました。
うまくいかなかった時には、また相談させてください。

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