• 締切済み

エクセルのマクロでクリップボードの使い分け。

マクロ初心者です。任意のシートの任意の列(先に選択しておきます。)とそのシートのA列を特定のシートの2列に並べてコピーしたいのですが、クリップボードを使ってマクロ記録をしても、実行すると貼り付けの段階でエラーが起こります。クリップボードの中身を一つ目のデータ、二つ目のデータというように、選択して貼り付けすることは無理なのでしょうか。あるいは、一つ目のデータをコピー・貼り付けした後、元の任意のシートに戻る方法はないでしょうか。どなたか教えてください。よろしくお願いします。Excel2000を使っています。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 サンプルマクロです。 シート名Sheet1のA列とD列を、シート名Sheet2のA列とB列にコピーします。 シート名の所と、D:DとB:Bを好きな列に変更すれば使えるとご希望の動作になりますか? 新規ブックでテストしてみて下さい。 Sub Test() Worksheets("Sheet1").Columns("A:A").Copy _  Destination:=Worksheets("Sheet2").Columns("A:A") Worksheets("Sheet1").Columns("D:D").Copy _  Destination:=Worksheets("Sheet2").Columns("B:B") End Sub

noname#5189
質問者

お礼

こんばんは。早速の回答ありがとうございます。 確かにシート名を変更すれば出来ることは分かるのですが、ネックになっているのが、任意のシートの任意の列ということなのです。 実は1ヵ月ごとのシートに毎日の日ごとのデータがありまして、ほぼ毎日、その日の分だけのデータを抜き取りたいということなのです。ご回答いただいたコードでは残念ながら1日分しか出来ませんよね。加えてこの作業をするのが私だけではなく、エクセルのエの字も知らないような人たちがやらなくてはならず、何とかマクロで簡単に出来ないものかと思ったのです。 月ごとに分割せず1つのシートに連続してデータを入れる方法も考えたのですが、月ごとの縦横の集計も欲しいのでそれもちょっと出来ないのです。 ですが、実はこの質問をした後も色々と試行錯誤を繰り返しまして、最初に任意の列を選択した状態で、(ここからマクロ)シートごとコピーして新しいシートをつくり、選択されている行をコピー&B列にペースト、AB列をコピー&さらに新しいシートにペーストというやり方で解決できました。ありがとうございました。

関連するQ&A