dポイントプレゼントキャンペーン実施中!

タイトルのとおり、シート1の離れた複数セルのそれぞれの値をシート2の任意のセルに貼り付けたいと考えました。
いろいろネットで調べましたが、結果、下記のようなものはできました。

Sub 貼り付け()
  Dim rc As Range
  Dim rp As Range
  Dim i As Long
  
  Set rc = Sheets("Sheet1").Range("A1, B1, C1, D1, F1")
  Set rp = Sheets("Sheet2").Range("E1, F2, G3, B4, D4")
  Sheets(rp.Parent.Name).Select
  For i = 1 To rc.Areas.Count
    rc.Areas(i).Copy
    rp.Areas(i).Select
    ActiveSheet.Paste link:=True
  Next i
  Application.CutCopyMode = False
End Sub

ですが、これではリンクの貼り付けになってしまうため、値の貼り付けをどうしたらできるか考えております。
こちらは、マクロに関してまったくの初心者です。いろいろ調べて見た目の結果、このマクロが一番望んでいたものに近かったので試してみました。が、値の貼り付けにはならないので、どうしたら値の貼り付けができるか教えていただけませんでしょうか?

これから、もっとマクロを勉強したいと考えております。
解説みたいなものも一緒にいただけるとありがたいです。

よろしくお願いします。

A 回答 (1件)

こんにちは!


せっかくコードをお考えのようなので別案はお望みではないかもしれませんが、
コピー&ペーストではなく、単に値の表示だけで良いと思います。

Sub Sample1()
Dim i As Long
Dim myAry1 As Variant, myAry2 As Variant

myAry1 = Array("A1", "B1", "C1", "D1", "F1")
myAry2 = Array("E1", "F2", "G3", "B4", "D4")
For i = 0 To UBound(myAry1)
Worksheets("Sheet2").Range(myAry2(i)).Value = Worksheets("Sheet1").Range(myAry1(i)).Value
Next i
End Sub

こんな感じでも大丈夫だと思います。

※ 今回は対象セルが少ないので、オーソドックスにコツコツやるのであれば

Sub Sample2()
Dim wS As Worksheet
Set wS = Worksheets("Sheet1")
With Worksheets("Sheet2")
.Range("E1") = wS.Range("A1")
.Range("F2") = wS.Range("B1")
.Range("G3") = wS.Range("C1")
.Range("B4") = wS.Range("D1")
.Range("D4") = wS.Range("F1")
End With
End Sub

といった感じですかね。m(_ _)m
    • good
    • 1
この回答へのお礼

ありがとうございます。
思っていたとおりのことができました。はっきりいって、まったくマクロのことはわからないので、こちらの内容もどういう風に書かれているのか理解できませんが、本当にありがとうございます。
ここから少しずつ勉強していきたいと思います。

お礼日時:2015/02/07 15:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A