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

エクセル 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使用しております。

「別のシートの文字列を他のシートに移すには」の質問画像

A 回答 (2件)

こんばんは!


一例です。

標準モジュールにコピー&ペーストしてマクロを実行してみてください。

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/10/07 21:35

淡々と、シートを増やしてコピー貼り付けていくのが一番簡単です。



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/10/07 21:32

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