• 締切済み

マクロについて教えてください。

最近、勉強し始めました。 名簿を作成しています。Sheet1のデータを2種類に分けてSheet2(県外)、Sheet3(県内)のあらかじめ作成している表に振り分けたいのです。 しかしながら、1名分のデータをコピーして張り付けることはしたのマクロで出来たのですが、2名分もこのようにするとなると手入力したほうが速いような気がしています。 なにかいい方法がありましたら教えてください。 Sub コピーして別のシートに貼り付ける1() Worksheets("Sheet1").Activate Range("B11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("B10:E17") Range("C11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("A18:E19") Range("D11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("F10:K17") Range("E11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("F18:K19") Range("F11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M10:S10") Range("G11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M11:S11") Range("H11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M12:S12") Range("I11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M13:S13") Range("J11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M14:S14") Range("K11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M15:S15") Range("L11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M16:S16") Range("M11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M17:S17") Range("N11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M18:S18") Range("O11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("M19:S19") Range("P11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("T10:T19") Range("Q11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("U10:U19") Range("R11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("V10:V19") Range("S11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("W10:W19") Range("T11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("X10:X19") Range("U11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("Y10:Y19") Range("V11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("Z10:Z19") Range("W11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("AA10:AA19") Range("X11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("AB10:AB19") Range("Y11").Copy ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("AC10:AG19") End Sub

みんなの回答

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

とりあえず「今実現できているマクロ」をグループごとに固めてみると Sub macro1() Worksheets("Sheet2").Range("B10:E17").Value = Worksheets("Sheet1").Range("B11").Value Worksheets("Sheet2").Range("A18:E19").Value = Worksheets("Sheet1").Range("C11").Value Worksheets("Sheet2").Range("F10:K17").Value = Worksheets("Sheet1").Range("D11").Value Worksheets("Sheet2").Range("F18:K19").Value = Worksheets("Sheet1").Range("E11").Value Worksheets("Sheet2").Range("M10:S19").Value = Application.Transpose(Worksheets("Sheet1").Range("F11:O11").Value) Worksheets("Sheet2").Range("T10:AB19").Value = Worksheets("Sheet1").Range("P11:X11").Value Worksheets("Sheet2").Range("AC10:AG19").Value = Worksheets("Sheet1").Range("Y11").Value End Sub というぐらいまでにはなります。 ただし,これらのマクロがご質問で企図していた >Sheet1のデータを2種類に分けてSheet2(県外)、Sheet3(県内)の >あらかじめ作成している表に振り分けたいのです を実現できているのかどうかは,はっきりいって全く情報不足ですが,とてもそういう風になっているようには思えません。 それだけ沢山のセル範囲に具体的に何が入っていてどうだからここにこうやって持って行くのが「正しい」「間違っている」とイチイチ教わるのはちょっとナンセンスですので,もうちょっとガンバってお手許の表の「エッセンス」を抽出して,ご相談自体をブラッシュアップしてみてください。

shiohibi
質問者

お礼

ありがとうございます。 勉強不足ですいません。もう少し勉強してから質問を出してみるべきでした。 がんばってマクロの勉強をします。

関連するQ&A