• ベストアンサー

エクセルのVBAで教えてください(初心者)

シート1とシート2があり、シート1には、データが何行か(不特定)あり、シート2の方に必要な列(下記の場合はA、D、E)だけ、コピーをする方法を教えてください。宜しくお願いします。  シート1 (何行あるかわからない) A B C D E  1 ○ ◆ ◇ × ● 2 △ ◎ △ ▲ X 3 ▽ 1 5 V a 4 2 ¥ ■ 〒 ←     ↓ 10 ★ □ ▼ % ☆ シート2(B.C列は不要) A D E  1 ○ × ● 2 △ ▲ X 3 ▽ V a 4 2 〒 ←     ↓ 10 ★ % ☆

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

  • ベストアンサー
  • MIYABF5D
  • ベストアンサー率26% (17/64)
回答No.3

単純に・・・ Sub まくろ() Range("A:A,D:E").Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste End Sub こんなんでどうですか? 単純すぎでしたら補足よろしく

y3640006
質問者

お礼

あっという間にシートの動きもあってよかったと思います。ありがとうございました。

その他の回答 (4)

  • urdapple
  • ベストアンサー率30% (9/30)
回答No.5

あ、ごめんなさい。 ANo.4のurdappleですが、ANo.1のYeti21さんと答えかぶってました( ̄▽ ̄;)<めんぼくね・・・

  • urdapple
  • ベストアンサー率30% (9/30)
回答No.4

Sub まっくろ() Sheets("Sheet1").Range("A:A,D:E").Copy Sheets("Sheet2").Paste End Sub もっと簡単にこれじゃだめ? ユーザに動きを見せる必要が無ければ、selectする必要はないっすよ。

noname#22222
noname#22222
回答No.2

エクセルは操作したことがない門外漢です。 が、過去の回答を見ているとマクロの記録なる便利な機能があるようです。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2006/9/29 ユーザー名 : xxxxxx ' '   Range("A1:A38").Select   Selection.Copy   Sheets("Sheet2").Select   ActiveSheet.Paste End Sub 例えば、A1~A38をシート2にコピーする操作を記録したマクロはこのようです。 これをチクッと弄(いじ)れば、何とかなりそうだと思います。

y3640006
質問者

お礼

ありがとうございます。複数の列を指定するとなると、少しいじくる必要がありますね。初心者ですのでその辺も教えていただければ助かりますね。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

簡単な一例ですので、応用が必要です。 Sheets("Sheet1").Range("A:A,D:D,E:E").Copy Sheets("Sheet2").Paste

y3640006
質問者

お礼

早速のご回答、ありがとうございました。確かに簡単なコードですね。これで十分ですね。

関連するQ&A