こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2012-10-05 22:38:30

QNo.7734080

すぐに回答ほしいです

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

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

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

投稿日時 - 2012-10-05 23:43:53

お礼

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

投稿日時 - 2012-10-07 21:32:58

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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

投稿日時 - 2012-10-05 23:20:16

お礼

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

投稿日時 - 2012-10-07 21:35:02

あなたにオススメの質問