現在、エクセルでデータの管理を行なっていますが、複数のシートから必要なデータのみ(「郵便」と入れた列)を、特定のシートに複写する方法の計算式をご教示ください。
エクセルデータのシート例示状況は次のとおりです。
(1) sheet1
A B C D E F
1 (株)東京 1000 500 200 100 郵便
(2) sheet2
A B C D E
1 神奈川県庁 50 20 100 郵便
(3) sheet3(このシートに各シートのデータに「郵便」と入れた業者名だけを順次下のセルに自動複写していく)
A B C D E
1 (株)東京
2 神奈川県庁
このように何とかならないか考えています。誠に申し訳ありませんが、一連の「計算式と手法」をご教示ください。お願いします。
やっぱり「マクロ」しかないですよね。(マクロはかなりの初心者です)
なお、エクセルは2003です。
重ね重ねお願いします。
解決したでしょうか。以下のコードを
Excelの標準モジュールに貼り付け、
マクロの実行で試してみてください。
分からないところがあれば、補足してください。
Sub test3()
Dim R1 As Long
Dim R2 As Long
Dim x As Long
Dim y As Long
Dim wk As Workbook
Dim i As Integer
'Sheetの行の位置の初期化
R2 = 0
Set wk = ThisWorkbook
'シートの選択 インデックスで選別
'Sheet1はSheet(1)、Sheet2はSheet(2)、Sheet3はSheet(3)のような関係
For i = 1 To 2
x = wk.Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row '最終行
y = wk.Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column '最終列
For R1 = 1 To x
If wk.Sheets(i).Cells(R1, y).Value = "郵便" Then
R2 = R2 + 1
wk.Sheets("Sheet3").Cells(R2, "A") = wk.Sheets(i).Cells(R1, "A")
End If
Next R1
Next i
End Sub
お礼
お忙しいところご教示いただきまして、ありがとうございました。 これで、私もマクロのすばらしさと取り組み方を変えなければならないと、改めて痛感しました本当に助かりました。 また、貴重な時間を費やしていただきまして感謝いたします。本当にありがとうございました。