• ベストアンサー

エクセルマクロでシートを作成し、データを移行

こんばんは、ややこしいのですが、エクセルマクロで1つのシートから別シートを作成し、データをコピーさせたいです。 カレーというシートに    A B 1<山田>     2ニンジン 5個 3ジャガイモ   2個 4<吉田> 5タマネギ 3個 6米       2合 という記入がある場合 カレー山田というシートを作成し、A1~A5セルにニンジン、A6~A7セルにジャガイモ(個数分セルを繰り返す)とコピーさせたいです。 同じくカレー吉田というシートを作成し、A1~A3セルにタマネギ、A4~A5セルに米と入れさせたいです。 こういったことが自動でできませんでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

以下のマクロで試してみてください。 Sub データ展開()   Dim mR     As Long   Dim wStr    As String   Dim eR     As Long   Dim wI     As Integer   Dim wSht    As Worksheet   Dim c      As Range   '   Set wSh = ActiveSheet   mR = wSh.Range("A" & Rows.Count).End(xlUp).Row   For Each c In wSh.Range("A1:A" & mR)     If Left(c, 1) = "<" Then       '名前取得       wStr = Mid(c, 2, Len(c) - 2)       'シート追加       Worksheets.Add After:=Worksheets(Sheets.Count)       'シート名設定       ActiveSheet.Name = wStr       eR = 0     Else       'データ展開       For wI = 1 To Val(c.Offset(0, 1))         eR = eR + 1         Worksheets(wStr).Cells(eR, 1) = c       Next     End If   Next End Sub

TAM3TAM7
質問者

お礼

ありがとうございました。 ほとんど思った通りのものでした。 頂いたマクロを自分でも読み解いて勉強させて頂こうと思います。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

ここへ質問する前に下記のことぐらいやって、質問を絞り、質問をしてください。丸投げになっています。 したいことだけ文章で書けば、コードを書くことをやってくれるコーナーではないはず。 まずマクロの記録をとることです。 (1)シートの挿入 (2)セル範囲をコピーしシートに貼り付ける。 (3)繰り返し法 (4)繰り返しを終わらせる方法 (5)山田部分の範囲指定の仕方(切り出し方) (4)(5)はマクロの記録では十分出ない化も知れないが。

TAM3TAM7
質問者

お礼

ありがとうございました。 できるか、できないかという次元での質問のつもりだったのですが、他の方からご回答を頂き、ものすごく助かりました。ただ、自分の勉強にはならないのできちんと検証したいと思います。 思っているよりもはるかに色んな事ができるのだな、と分かったので、以後はチャレンジしてから問題を明確にして質問したいと思います。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

具体的にどの部分がわからないのでしょう。

関連するQ&A

専門家に質問してみよう