• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:別のシートの文字列を他のシートに移すには?)

別のシートの文字列を他のシートに移すには?

このQ&Aのポイント
  • エクセル VBAで別のシートの文字列を他のシートにコピーするにはどのようなコードを記入すればよろしいでしょうか?
  • 同一ブック内に「Sheet1」と「リスト」のワークシートがある場合、次の順序でリストのデータを他のシートに貼り付けるにはどのようにコードを入力すればよろしいでしょうか?
  • (1)2行目からのリストの使用行数を調べる。 ※リストの使用行数は変動するため、決まっていません。 (2)Sheet1は、32行しか入力できないため、(1)で求めたリストの行数からワークシートを必要数コピーする。 例 リストの行数が100の場合、Sheet1を3つコピーし、計4つにする。 (3)リストの図番(A列)、名称(C列)、金額(E列)をコピーし Sheet1のA,B,C列に「値」で貼り付ける。 (4)Sheet1のA,B,C列に32行貼り付け終わったら(2)でコピーした次のシートに続きのリストを貼る。 (5)リストの最後(文字が記入してある箇所)まで他のシートへのコピーが終わるまでワークシートを変えて続ける。以上です。よろしくお願い致します。エクセルは2003、2007使用しております。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

淡々と、シートを増やしてコピー貼り付けていくのが一番簡単です。 sub macro1()  dim r as long  for r = 2 to worksheets("リスト").range("A65536").end(xlup).row step 32  ’シートを増やす   worksheets("Sheet1").copy after:=worksheets(worksheets.count)  ’転記する   range("A2:A33").value = worksheets("リスト").cells(r, "A").resize(32, 1).value   range("B2:B33").value = worksheets("リスト").cells(r, "C").resize(32, 1).value   range("C2:C33").value = worksheets("リスト").cells(r, "E").resize(32, 1).value  next r end sub

n151713m
質問者

お礼

回答ありがとうございます。 勉強になりました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 標準モジュールにコピー&ペーストしてマクロを実行してみてください。 Sub test() Dim i As Long, ws As Worksheet Set ws = Worksheets("リスト") For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row Step 32 Worksheets.Add after:=Worksheets(Worksheets.Count) ws.Rows(1).Copy Destination:=Worksheets(Worksheets.Count).Cells(1, 1) ws.Cells(i, 1).Resize(32, 5).Copy Worksheets(Worksheets.Count).Cells(Rows.Count, 1).End(xlUp).Offset(1).Select Selection.PasteSpecial Paste:=xlValues With Worksheets(Worksheets.Count) .Columns(4).Delete .Columns(2).Delete End With Next i End Su ※ Sheet2は全く無視して、「リスト」Sheetの1行目を挿入Sheetにコピーしています。 参考になりますかね?m(_ _)m

n151713m
質問者

お礼

回答ありがとうございます。 本を見ながら勉強させていただきました。

関連するQ&A