ここから本文です

エクセルで1つのブック内の複数のワークシートを 1枚に結合したいのですが、自分...

osh********さん

2008/9/1718:46:25

エクセルで1つのブック内の複数のワークシートを
1枚に結合したいのですが、自分で調べて何度か
マクロをやってみても、どうしてもエラーになってしまいます。

某サイトからコピペさせて頂いた、
以下のマクロを使用しています。

Sub MergeSheets()

Dim intLoop As Integer

'画面更新の停止
Application.ScreenUpdating = False

'先頭にワークシートを1枚追加
Worksheets.Add before:=Worksheets(1), Count:=1

For intLoop = 2 To Worksheets.Count
'元データを選択してコピー
Worksheets(intLoop).Select
Range("A1").CurrentRegion.Select
If intLoop > 2 Then
Selection.Resize(Selection.Rows.Count - 1).Offset(1).Select
End If
Selection.Copy
'先頭のワークシートに貼り付け
Worksheets(1).Select
If intLoop = 2 Then
Range("A1").Select
Else
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select
End If
ActiveSheet.Paste
Next intLoop

'コピーモードを解除して全シートのA1セルを選択
Application.CutCopyMode = False
Worksheets.Select
Range("A1").Select
Worksheets(1).Select

'画面更新停止の解除
Application.ScreenUpdating = True

'完了メッセージ
MsgBox "「" & Worksheets(1).Name & "」に全ワークシートのデータをまとめました。"

End Sub


※シートは全部で6枚。A1からデータが入っています。
もちろんフォームは同じですが、一番最後のセルは
シートによって様々です。
K13で終わるものもあればK500のもあったりします。

※どのシートにも必ずデータが入っているのは、
A1、A3~A7、A11、B11、C11、D11、I11、K11です。
A11には日付・I11には金額・K11には通し番号が入っています。
それ以外は文字列です。

※A1からKの最後までの間にはところどころ、空白セルが
存在します。空白セルの場所も量も、シートによって様々です。
空白セルは自分にとって意味のあるセルなので、
削除したり余計なデータを入れたりせず、結合した後の新しい
シートにも空白セルのまま表れてほしいです。

(ワークシート結合後に、社内文書テンプレート(A列からK列まである)に
そのままコピペしたいからです。)

恐らく空白セルのないワークシートを結合するなら
上記のマクロで問題ないかと思うのですが。。。
私の場合は、どうすればうまく作動しますか?
長くなりましたが、よろしくお願いします。

補足>CurrentRegion ではなく UsedRange を使う。
UsedRange.Rows.Count
で使用している最終行が取れます。


ありがとうございます。
しかし、これですと実行時エラーが起こってしまいます(´ω`)

閲覧数:
2,577
回答数:
1

違反報告

ベストアンサーに選ばれた回答

ふゆきたさん

2008/9/1719:22:27

CurrentRegion ではなく UsedRange を使う。

UsedRange.Rows.Count

で使用している最終行が取れます。(多すぎる場合もありますが)


>某サイトからコピペさせて頂いた、
>以下のマクロを使用しています。

ちゃんと解読しましょう。。。

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる