• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELのシート間コピーについて教えてください!)

EXCELのシート間コピーについて教えてください!

このQ&Aのポイント
  • 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の順にコピーし、印刷します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.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

関連するQ&A