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

解決済みの質問

VBAの複数のセルのコピー法がわかりません。

VBAの複数のセルを選択、コピーしようとしているのですができません。

エクセルで複数の選択&コピーができないので、普通のやり方ではできないとわかっています。でも、やりたいんです。どなたか、その方法に知恵を貸していただける方はいませんか?


現在、ダイアログボックスにて複数のセルを入力した情報について、それを他のシートにコピーしようとしています。
(なぜ、いちいちダイアログで入力しているのかというと、その入力情報を元に、オフセットで過ぎのセルの情報に移動しそれも個コピー&ペーストしようとしているのです。)


Set IntTest = Application.InputBox(Prompt:=StrMsgTest, Type:=8)

で、複数のセルを選んでもらった情報を他のシートにコピーしようとしています。


複数のセルのコピーができないので、今はUnionを使ってどうにかならないか試していますが、これまた全然わかりません。

Union(Range("g1:k8"), Range("h9:h19"), Range("g20:k30")).Select
Selection.Copy Destination:=Worksheets("Sheet2").Range("A1")


どなたか、「コピー&ペースト」について、またそれとともに「ダイアログ入力からのそのコピー&ペーストの方法」について知恵を貸していただけませんか?

投稿日時 - 2007-04-28 21:28:15

QNo.2957982

暇なときに回答ください

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

>複数のセルを選んでもらった情報を他のシートにコピーしようとしています
どこに貼り付けるのか書かれていないので違っているかもしれませんが、InputBoxメソッドで選択したレンジの値を、別シートの同じアドレスのセルに書き込む方法ではいけませんか?

Sub macro()
Dim ws As Worksheet
Dim rng, trg As Range
 Set ws = ActiveSheet
 Set trg = Application.InputBox(prompt:="セルを選択してください", Type:=8)
 If Not trg Is Nothing Then
  Worksheets.Add after:=ws '←とりあえずシートを追加してます
  For Each rng In trg
   ActiveSheet.Range(rng.Address).Value = rng.Value
  Next rng
 End If
End Sub

この方法では書式はコピーされません。セルを1つずつCopyして、Pasteする方法も考えられますが、それはお試しください

投稿日時 - 2007-04-29 00:13:24

お礼

質問自体があいまいだったのに、丁寧な回答をありがとうございます。
アドレスのセルに書き込む方法で対処してみます。ありがとうございました。

投稿日時 - 2007-04-29 17:05:30

ANo.3

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

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

回答(3)

ANo.2

こんばんは。

>でも、やりたいんです。
私は、そのロジックが理解できないですね。
コピー&ペーストの問題ではなく、その手順と内容の問題です。

出過ぎたものという判断を、インプットボックスで行うということ自体、判定に無理がありますし、任意で領域を選択しているので、コピーしたデータに順序も定まりません。

また、それぞれの貼り付けした後の領域の、それぞれの位置関係も不明です。そもそも、何に対して、シート2 のA1 なのでしょうか?順序のないデータ領域に、A1 の貼り付け先ということはありえません。今の段階では、せいぜい、Sheet1 の選んだ領域と同じ場所のSheet2しか無理だと思います。

もう、一度、振り出しに戻って、考え直したほうがよいと思います。

投稿日時 - 2007-04-28 23:29:56

お礼

すみません。質問の仕方がよくなかったですね。
考え直します。

投稿日時 - 2007-04-29 17:06:55

ANo.1

Unionは、セルの参照に使用できますが、COPYには、向かないです。

セルのコピーアンド ペーストは、
例; 
Worksheets("Sheef1").Range("A1:C3").Copy
Worksheets("Sheef1").Paste(Worksheets("Sheef1").Range("B2:D4"))
となります。

投稿日時 - 2007-04-28 21:40:02

お礼

回答ありがとうございます。
私の質問があいまいだったために、いろいろな回答を頂きました。
g1からk8、h9からh19、g20からk30までを、一度にコピーする仕方を知りたかったんです。
もう少し質問の内容を絞って出直してきます。

投稿日時 - 2007-04-29 17:10:39

あなたにオススメの質問