プロが教えるわが家の防犯対策術!

こんなことが可能かわかりませんが、
毎月集計をとっているファイルがあります。

そのファイルは毎月名前がかわるのですが、(2013.05○○ファイル←毎月数がふえていきます。)
そのファイルの中にあるシートの数枚(4枚をれぞれに名前がAデータ・Bデータ・Cデータ・Dデータ)を違うファイル(調査ファイル)に値だけを貼り付けたいのです。

月末にデータが完成したら、あるボタンをおしたら2013.05○○ファイルのA・B・C・Dデータを
調査ファイルのデータa・b・c・dデータに値だけを貼り付けたいです。
対象となるのは各シート全体の数値です。

どなた様かご教授くださいませ。
よろしくお願い致します。


そのようなことができるマクロというのはあるのでしょうか。

A 回答 (1件)

こんばんは。



集計ファイルシートのフォーマット、および、コピーされる調査ファイル側のフォーマットがわからないので、外れているかもしれませんが。
以下の前提でコードを作ってみました。

1)データ元の集計ファイル(ファイル名を"集計.xlsx"とする。)は、既に開かれているとする。
2)Aシート~Dシートのデータは、A1セルを含み、空白行・空白列で囲まれた範囲にあるとする。
3)調査シートには、同じ名前のシートを新規作成し、そこにデータをコピーする。

以下コード例です。標準モジュールにコピペして、実行させて下さい。

Sub CopySheetData()
Dim wb As Workbook
Dim tRow As Long, tCol As Long
Dim i As Integer
Dim shName As Variant
'シート名定義
shName = Array("Aシート", "Bシート", "Cシート", "Dシート")
'ターゲットブック設定
Set wb = Workbooks("OKW月別.xlsx")
Application.ScreenUpdating = False
With ThisWorkbook
'シート生成&データコピー
For i = 0 To 3
With .Worksheets.Add
.Name = shName(i)
wb.Activate
wb.Sheets(shName(i)).Activate
tRow = wb.Sheets(shName(i)).[A1].CurrentRegion.Rows.Count
tCol = wb.Sheets(shName(i)).[A1].CurrentRegion.Columns.Count
.[A1].Resize(tRow, tCol).Value = wb.Sheets(shName(i)).[A1].CurrentRegion.Value
End With
Next i
End With
Application.ScreenUpdating = True

Set wb = Nothing

End Sub

いかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございました。
たすかりました。

お礼日時:2013/11/20 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!