• 締切済み

エクセルで特定の複数セルを選択し、別ブックへ一度に「リンク貼り付け」するマクロは?

エクセルで作成したファイル(1)で、特定の複数セル(連続していないセル)を選択し、まったく同じフォーマットの別ふぁいる(2)へ一度に「リンク貼り付け」する方法があれば教えて頂きたいと思っております。 【BOOK(1) - シート】をコピー ---------------------------------------------------------------- ----------------------   A    B C      D     E FG   H  1 NO    名前   ランク  概要    備考 2 11   あああ      A     ****   ○○○  3 55     いいい     B     ****   △△△   4 77    ううう     C     ****   □□□     ---------------------------------------------------------------- ---------------------- 【BOOK(2) - シート】へリンク貼り付け ---------------------------------------------------------------- ----------------------   A    B C      D      E FG   H  1 NO    名前   ランク  概要    備考 2 11   あああ          ****   3  4       ううう     C     ---------------------------------------------------------------- ---------------------- 列BとC、列EとFとGはセルの結合をしております。 BOOK(1)のセル「A2」「BC2」「BC4」「D4」「EFG2」だけをコピーし、 BOOK(2)の同一セルへリンク貼り付けを行う。 コピーするセルが飛び石のように離れており、2つ以上のセルが結合している列があったりします。 複数のBOOKがあり、すべてのBOOKで上記と同一セルを「リンク貼り付け」する場合に 一度にまとめて実行できるようなVBAやマクロで実現可能な方法があれば教えて下さい。 (勉強も兼ねているため、マクロ記述に補足説明があると助かります) 現在の所、連続しているセルはまとめてリンク貼り付けができるのですが、離れているセルは1つずつ選択して貼り付けております。 この別ファイルへのリンク貼り付け作業が大量にあり、時間がかかるため大変困っております。 御手数お掛け致しますが、何卒よろしくお願いいたします。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

地道に、1ブックづつ開いて、1セルづつリンク貼り付けしてやるしか無い様に思えます。 画面更新を停止すればかなりのスピードアップになりますし、リンク貼り付けを行うセルが決まって居るなら、セル範囲を配列に持てばコードもある程度シンプルに出来ますよ。 以下、サンプルです。 貼り付けるブックを「貼り付けBOOK…」で始まる名称のブックと仮定しています。 Sub Test()  Dim vTarget As Variant '対象セル情報  Dim nLoop As Long  Dim sFile As String    vTarget = Array("A2", "B2:C2", "B4:C4", "D4", "E2:G2") '対象セル情報を配列に入れる  Application.ScreenUpdating = False '画面更新停止    sFile = Dir("貼り付けBOOK*.xls") '貼り付けるブックを検索  Do While sFile <> ""   Workbooks.Open Filename:=sFile '貼り付けるブックを開く     For nLoop = 0 To UBound(vTarget) '配列分ループを回す    ThisWorkbook.Activate    Worksheets("Sheet1").Range(vTarget(nLoop)).Copy '自ブックの対象セルをコピー        Windows(sFile).Activate    Worksheets("Sheet1").Range(vTarget(nLoop)).Select '貼り付けるブックの対象セルを選択    ActiveSheet.Paste Link:=True 'リンク貼り付け   Next nLoop   Windows(sFile).Close True '貼り付けるブックを保存終了   sFile = Dir() '貼り付けるブックの検索を続行  Loop  Application.ScreenUpdating = True '画面更新再開 End Sub

KTN1123
質問者

お礼

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

KTN1123
質問者

補足

mt2008様 教えていただいたコードを試してみたのですが、別BOOKへのリンク貼り付けができませんでしたので、質問させていただきます。 >>vTarget = Array("A2", "B2:C2", "B4:C4", "D4", "E2:G2") '対象セル情報を配列に入れる    対象セルの指定についてですが、例えばA1からC10までの連続した広範囲のセルをまとめてリンク貼り付けしたい時の範囲指定の記述は「"A1:C10"」でよろしいですか? また、B1とC2で結合しているセルの指定は「"B2:C2"」でよろしいでしょうか? >>sFile = Dir("貼り付けBOOK*.xls") '貼り付けるブックを検索  貼り付けるブックを指定する時は、同一階層にあるファイルであればファイル名だけを指定すればよろしいでしょうか?それともフルパスにしますか? それから、ここではブックの指定のみでシートの指定はしなくてもよいのでしょうか?  ちなみに、貼り付けするブックは社内ネットワーク上の共有サーバ上にあり、フォルダー名が日付になっており毎月変更されるためフルパスを指定が難しいのですが、フルパスで指定しない方法があれば教えていただけると幸いでございます。 お忙しい所 大変恐縮ではございますが、宜しくお願い致します。

関連するQ&A

  • 離れたセルのリンク貼り付けを行うためのマクロについて

    ブック(1)のシート(1)にある複数の離れたセル(B2,D2,C3,F3,B4:F4)をコピーし、別ブックのシート(1)のセル(B2,D2,C3,F3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)はイントラの共有フォルダ上の同一階層に置いてあります。 このブック(1)と同一フォーマットのブックが複数存在し、上記同様にブック(2)の離れたセルをコピーして別ブックのシート(2)のセルへリンク貼り付け。 続いて、ブック(3)の同じセルをコピーし別ブックのシート(3)へリンク貼り付けと言うように、同じセルをコピーし別シートの同じセルへリンク貼り付けの作業を繰り返し行います。 まったく同じ位置のセルをコピー&リンク貼り付けを繰り返し行いたいので、マクロを使って自動実行させたいと思っています。 離れたセルのリンク貼り付けは出来ないのかもしれないですが、アドバイスを頂けると助かります。 宜しくお願い致します。

  • 複数のセルをコピーし、別シートの任意のセルへペーストをするためのマクロ

    ブック(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 へ貼り付ける) この作業をマクロを使って自動実行させたいと思っています。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • リンク貼り付けをマクロで簡素化したい

    1)個人票ブック(太郎シート 花子シート 次郎シー・・・・・)の各シートのA1からA5まで、値や公式がはいっています。 2)このシートのA1からA5までの値等を、別の総括表ブック(一枚のシートしかない)にリンク貼り付けをします。 3)まず、太郎シートのA1~A5までは、総括表ブックのB列にリンク貼り付けするマクロボタンを、太郎シートに設置します。 4)さらに、花子シートのA1~A5までは、総括表ブックのC列にリンク貼り付けするマクロボタンを、花子シートに設置します。 5)そして、次郎シートのA1~A5までは、総括表ブックのD列にリンク貼り付けするマクロボタンを、次郎シートに設置します。 6)こうしてマクロボタンを順次貼り付けていきます。 7)各シートの貼り付け場所は列に貼り付けていきますが、上から順番ではなく、任意に飛んでいますが、  各シートの行は、みな一律で同じ行です。 列は違っても皆おなじ行にリンク貼り付けしたいです。 このような操作をマクロ記録でつくりましたが、膨大な作業が必要です。これをなんとかVBAで簡素化したいのですが・・よろしくお願いします。

  • 別のブックにある、飛び飛びのセルにリンク

    ___│__A___│_ _1_│_a____│_ _2_│_b____│_ _3_│_c____│_ _4_│______│_ というような表が別のブックにあります。 カレントのブック内には、 _1_│__A __│_ _2_│_name_│_ _3_│_a____│_ _4_│______│_ _5_│______│_ _6_│______│_ _7_│______│_ このような表があります。A3は、先のブックの+A1 からリンクさせています。A2~A3 を一つの表として、+A4から下にコピーしていきたいのです。 つまり、カレントのブック+A4には先のブック+A2がリンクされるというわけです。 実際にはa,b,cだけでなく、80個あります。 INDIRECTとADDRESSあたりを使うのだとは思うのですが、セルの参照ではなく、式の中で別のブックを指定できるのでしょうか?

  • エクセルで縦行のセルを横列のセルにリンク貼り付けをしたい

    表1の A B C D E F G . . . の各セルを、表2にA B C D E F G . . と簡単にリンク貼り付けをする方法がありませんか。

  • Excel リンク貼り付け

    リンクの貼り付けをしたいのですが S1             S2  A B C D        A 1 a i u e       1 a               2             2 i 3             3 u 4             4 e という様にS1のA1~D1のものをS2のA1~A4まで貼り付けるにはどうすればよろしいでしょうか? 又、    S1           S2  A B  C  D        A 1 あ い う え       1 あ               2 お か き く       2 い 3 け こ さ し       3 う 4 す せ そ な       4 え                5 お                              6 か                7 き                8 く                9 け                             10 こ                11 さ                12 し の様に貼り付けたいのですがどうするのが一番楽でしょうか? 又、後者の貼り付け方で S2にてページを分けて 2ぺーじ目に 同じ枠でリンクの数値を 例:1P目 A1 A2 A3ときたら                2P目 A7 A8 A9としたい時は どうしたらよいでしょうか?それをコピーして数列 or 英字列だけ加算?するにはどうしたらよろしいでしょうか? よろしくお願いいたします。

  • EXCELで、セル間隔をあけて貼り付けしたい。

    2つのEXCELファイルがあります。 ファイルAのデータが以下のようにありまして、    A  B  C  D  E --------------------------------- 1| 5  10  3  4  6 この横にならんだ数値をコピーして、ファイルBに    A  B  C  D  E --------------------------------- 1 | 5 2 | × 3 | 10 4 | × 5 | 3 6 | × 7 | 4 8 | × 9 | 6 こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。 ファイルAの方の数値はSUBTOTAL関数を使用して出した結果の数値が入ったセルです。 貼り付けしたいセルだけをCtrlキーを押しながら選択して張り付けると 縦のセルの数×ファイルAの数値セルの数 で貼り付けされてしまいます。 「形式を選択して貼り付け」などもやってみましたが、うまくいきません。 なにかよい方法があったら教えていただきたいです。 よろしくお願いします。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • エクセル2003 可視セルの貼り付けについて

    手順どおりに可視セルの貼付をしているのですが、成功しません。 貼り付け元のデータを4列可視セルコピーしました。 そして貼り付け先のデータはA~E列までデータがあり、D列を非表示にしています。 A~E列(非表示のD列には計算式がはいっています)4列にコピーしたデータを 入れたいのですが、非表示のD列にE列に入れたいデータが入ってしまいます。 御教授お願い致します。

  • エクセルのシートを別のブックに貼り付けたい

    エクセル2003でブックAという名前のブックを作成しました。その中にシートにはブック内へのリンクがあります。 そして そのシートを別のブックBにコピーしたいのです。 普通にコピー→貼り付け をすると ブック内へのリンクがすべてブックA内へのリンクになってしまいます。 どうしたら ブックAへのリンクを外してコピーできるのでしょうか?

専門家に質問してみよう