プロが教えるわが家の防犯対策術!

ブック(1)のシート(1)にある複数の離れたセル(A1,B2,C3,D4:F4)をコピーし、別ブックのシート(1)のセル(E1,F2,G3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。
なお、ブック(1)とブック(2)は同一階層に置いてあります。
このブック(1)とブック(2)の表のフォーマットが違っており、ブック(1)のセルA1をコピーして ブック(2)のセルE1へ貼り付けし、
また同様にブック(1)のセルB2をコピーして ブック(2)のセルF2へ貼り付けをしていきます。
(A1→E1、B2→F2、C3→G3、D4:F4→B4:F4 へ貼り付ける)

この作業をマクロを使って自動実行させたいと思っています。
御手数お掛け致しますが、何卒よろしくお願いいたします。

A 回答 (4件)

その後の補足が無いということは、上手くいっているということでしょうか?



同一ブック内でリンク貼り付けを「マクロの記録」して得られたコードを編集してみました。
Sub testリンク貼り付け1()
  Dim rc As Range
  Dim rp As Range
  Dim i As Long
  
  Set rc = Sheets("Sheet1").Range("A1, B2, C3, D4:F4")
  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

もう一例、リンク貼り付けではなく、リンク式を入力してみました。
Sub testリンク式1()
  Dim rc As Range
  Dim rp As Range
  Dim i As Long
  
  Set rc = Sheets("Sheet1").Range("A1, B2, C3, D4:F4")
  Set rp = Sheets("Sheet2").Range("E1, F2, G3, B4:D4")
  For i = 1 To rc.Areas.Count
    rp.Areas(i).Formula = _
      "=" & rc.Parent.Name & "!" & rc.Areas(i).Item(1).Address(False, False)
  Next i
End Sub

この回答への補足

例えば「C:\Book1.xls」の(Sheet1)のセル(A1, B2, C3, D4:F4)をコピーし、「C:\test\Book2.xls」の(Sheet2)のセル(E1, F2, G3, B4:D4)へリンク貼付けを行う場合の記述は、どのようになりますか?
度々お手数お掛けして大変恐縮ではございますが、宜しくお願い致します。

補足日時:2009/03/26 14:15
    • good
    • 0
この回答へのお礼

御礼が遅くなってしまい申し訳ございませんでした。
教えていただきましたリンク式を試してみたところ、同一ブッックで希望通りの結果を得られました。
もしよろしければ、別ブックの場合を教えていただけますでしょうか?

例えば「C:\Book1.xls」の(Sheet1)のセル(A1, B2, C3, D4:F4)をコピーし、「C:\test\Book2.xls」の(Sheet2)のセル(E1, F2, G3, B4:D4)へリンク貼付けを行う場合の記述は、どのようになりますか?
度々お手数お掛けして大変恐縮ではございますが、宜しくお願い致します。

お礼日時:2009/03/24 17:48

相対的なセルを参照する(Offsetプロパティ)


http://www.moug.net/tech/exvba/0050091.htm

上記ページを参考にしてください。
上手くいかない場合、書かれたコードを提示してください。
エラーがでるなら、エラーコードと内容も合わせて教えてください。

A1,B2,C3 と E1,F2,G3
D4:F4 と B4:D4
ではOffset量が違っているので注意してください。

# 先に回答されているhige_082さんの提案は無視ですか?
    • good
    • 0
この回答へのお礼

早々のご回答をありがとうございました。
早速、参考にさせていただき試してみますね。
また質問等をさせていただくこともあるかと思いますが、宜しくお願い致します。

お礼日時:2009/03/07 21:45

D4:F4



B4:F4
の形(セル数)が違っているのでコピーできないと思います。
どちらかが間違っているのでしょうか?

形が同じなら、Offsetしてやれば良いとおもいます。

この回答への補足

ご指摘ありがとうございます。
記載間違いで、正しくは「D4:F4 → B4:D4」となります。
大変失礼いたしました。
よろしければ、offsetの記述例を教えて頂けると幸いでございます。
御手数お掛け致しますが、何卒よろしくお願いいたします。

補足日時:2009/03/07 13:31
    • good
    • 0

質問の手順をマクロの記録で記録してみては



詳しい操作は「マクロの記録」で検索してみてください
沢山のサイトで説明されています
    • good
    • 0
この回答へのお礼

早々のご回答をありがとうございました。
手動で1セルずつ地道に「マクロの記録」をする方法もありますね。

お礼日時:2009/03/07 21:42

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

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


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