- ベストアンサー
EXCELのシート間コピーについて教えてください!
- EXCELのシート間コピーについて教えてください!ブックにSHEET(1)とSHEET(2)があります。SHEET(1)のD列の1行目から300行程度まで文字列が入力されております。下記の作業をSHEET(1)のD列の文字列が終了するまでマクロ等を使って自動化したいです。
- SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピーし、印刷します。
- SHEET(2)のD列の13行目から24行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピーし、印刷します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)の > B1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー > SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)の > B1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー は、いずれもSHEET(1)のD列からコピー、ということでしょうか。 Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 シート名が実際のものと違ったら、注釈をつけている箇所を変更してください。 Sub CopyAndPrint() Dim WS1 As Worksheet, WS2 As Worksheet Dim CopyToStr As String Dim CopyToCell As Variant Dim i As Integer, j As Integer Set WS1 = Worksheets("SHEET(1)") 'コピー元のシート名 Set WS2 = Worksheets("SHEET(2)") 'コピー先のシート名 CopyToStr = "B1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10" CopyToCell = Split(CopyToStr, ",") j = 0 Do Until WS1.Cells(j * 12 + 1, "D") = "" For i = 0 To 11 WS2.Range(CopyToCell(i)).Value = WS1.Cells(j * 12 + i + 1, "D").Value Next WS2.PrintOut j = j + 1 Loop End Sub