• 締切済み

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

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

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

そんなに膨大な作業量になるのでしょうか? これは実際の作業がということなのでしょうか … 対象のファイルが膨大な量があるとか マクロ自体を一本化したいとかですか 現行のコードをどのように改善したいのかを具体化してみましょう 総括表シートに『リンク貼り付け』なのですからこれが複数回あるというのも考えにくいですし ・・・

aitaine
質問者

補足

1枚のシートにつき次のマクロを書いています。 Sub 日本太郎データ貼付()  ’G列に貼り付け Application.ScreenUpdating = False Workbooks("個人別データ").Activate Range("H3").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G6").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Workbooks("個人別データ").Activate Range("H4").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G7").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Range("H5").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G8").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Range("H6").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G14").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Workbooks("個人別データ").Activate Range("H7").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G19").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Workbooks("個人別データ").Activate Range("H8").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G23").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Range("H9").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G26").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Range("H10").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G28").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Workbooks("個人別データ").Activate Range("H11").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G42").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Workbooks("個人別データ").Activate Range("H12").Select Selection.Copy Workbooks("総括表").Activate Worksheets(1).Select Range("G44").Select ActiveSheet.Paste Link:=True 'Worksheets(1).Select '日本太郎 '----------------------------------------------- Application.CutCopyMode = False 'コピーモード解除 MsgBox "転記しました。" Worksheets(1).Select End Sub ブック(個人別データ)に個人別シートが20枚あり、各シートのH3からH12(固定)の値や式を ブック(総括表)の一枚のシートの各列の行(固定6,7,8,14,19,23,26,28,42,44)に貼り付けます。 列は20名の各人により、割り当てられています。 ブック個人別データのシートは増減が常にあります。

関連するQ&A

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

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

  • エクセルのマクロで

    エクセルのマクロで自動で記録させることしかできないド素人です。マクロで置換をしたいのですが、普通の置換ではなく例えば一枚目のシートのあるセルに花子さん、2枚目シートのあるセルに太郎さん、そのとなりのセルに次郎さんというようになっていたとします。これをマクロで花子さんを置換して太郎さんとその隣に次郎さんもくるようにしたいのですが可能でしょうか。または置換だと1つのセルに対して2つのセルは無理かもしれないので、ある条件の時に(太郎さんの時に)隣に次郎さんが貼り付けられるようにする方法はありますか。今までは手動で花子さんのところに太郎、次郎の両方のセルをコピーで貼り付けていました。これを多数の置換を登録してマクロにすればとても便利なのですがこのようなことは可能でしょうか。

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • エクセルにリンクの貼り付けについて教えて下さい。

    エクセルにてリンクの貼り付けについて教えて下さい。同じブック内で シート1に勤務表を作成しているのですが、うまくシート2の貼り付けたい箇所にリンク貼り付けができません。。 数字の0がでてきてしまい、元の表にはセルに色ぬりをしているのですが、色などは貼りつかないのでしょうか。。すみませんがよろしく お願いいたします。

  • 複数シートへのリンク貼り付けについて

    エクセルマクロ勉強中です。 シート1のセルA2の値をシート2のセルA1にリンク貼り付け。シート2のセルA2の値を シート3のセルA1にリンク貼り付け。このスタイルでシートを増やして行った時、それぞれのシート間でコピー、リンク貼り付けをしなくても自動的にコピー、リンク貼り付けが出来るマクロがあれば教えて下さい。 又、各シート名を変更してもリンク貼り付けの設定が変わらないように出来るでしょうか?

  • Excel マクロ 特定の列のみカット&ペースト

    Excel マクロ初心者です。IF文を使用しているのですが上手くいきません。 A列が「次郎」の時、1つ上の行のB~E列をカットし次郎の行へペースト、B列が空白の行削除・A列に山田を追加する。 例 A列|B列|C列|D列|E列 花子|a|あ|か|g 太郎|c|う|き|g 次郎| | た | | 三郎|e|お|く|g マクロ後 A列|B列|C列|D列|E列 山田花子|a|あ|か|g 山田次郎|c|う|き|g 山田三郎|e|お|く|g 色々と調べて試してみたのですが知識不足の為、上手くいかず・・・全文載せていただけると、とても助かります。

  • フィルターをかけ、必要部分だけを貼り付けするマクロ

    マクロを独学している初心者です。 よくわからず、途中までマクロを作成してみましたが、上手くいかずどのようにマクロを記載すれば以下教えてください。 ◆実施したいこと (1)ブック1を開いてマクロを動かして、ブック2をあける (2)ブック2のP列を当月(2020年6月)でフィルターする (3)ブック2のCの2行目以下をコピー (4)ブック1のB3セルへ貼り付け (5)ブック2のDの2行目以下をコピー (6)ブック1のC3セルへ貼り付け ----ここまでマクロで作成し写真添付------- (7)ブック2のO列を当月(2020/6/xx)でフィルターする (8)2020/6/1も6/何日であろうと出てきたもの全てをブック2のEの2行目以下をコピー (9)ブック1のD4セル以下へ貼り付け

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

    エクセルで作成したファイル(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つずつ選択して貼り付けております。 この別ファイルへのリンク貼り付け作業が大量にあり、時間がかかるため大変困っております。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • マクロについての質問です

    前回、このサイトにて教えてもらったマクロにて、不明な点が出てきましたので再度質問させていただきます。 ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞                           ボタン  A  B  C  D  E  F  G    H                  data1                      data2                    data3                      data4                    data5                    data6                      ・                        ・                        ・     ※Gの列にはハイパーリンクが並んでいます。 ※ボタン押下時に選択しているセルの行番号を取得し、その行のA~F列をコピーして、ハイパーリンクで開いた ファイル(date・・・)にはりつける。 ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ この作業のマクロを教えていただき、以下のマクロが出来ました。 Sub book() Dim col As Integer '選択行No取得用変数 Windows("book.xls").Activate col = ActiveCell.Row '現在選択している行No格納 Range(Cells(col, 1), Cells(col, 6)).Select '該当行のA~F列選択 Selection.Copy '選択範囲コピー Cells(col, 7).Hyperlinks(1).Follow NewWindow:=True '該当行のリンク開く Sheets("Sheet2").Select '貼り付けシートの選択 Range("a2").Select '貼り付けセルの選択 ActiveSheet.Paste '貼り付け End Sub このマクロで、もともと作成していた6行程度の表では何の不自由も無く作業できました。 次にこの表の行が大量に増えてきましたので \\server\スタッフ\購買 フォルダーに、連続した番号のファイル (date1・date2・・・・date10)を作成し、上記の表の3行目(data1の行)のG列に、ハイパーリンク関数  =HYPERLINK("\\server\スタッフ\購買\"&H3&".xls",H3)を入力。 その後、3行目H列にdate1を入力し、フィルコピーにてdate1・date2・・・・date10までを作成。 次に3行目G列からフィルコピーにてハイパーリンクdate1・date2・・・・date10までを作成。 これで、単純に上記表を拡大することが出来たと思っていたのですが、今まで使っていたマクロボタンを押すと “実行時エラー9:インデックスが有効範囲にありません”となってしまい、デバックすると Cells(col, 7).Hyperlinks(1).Follow NewWindow:=True の行が黄色に点灯していました。 これはどういう内容でしょうか?どの作業が悪いのでしょうか?私としては、この表のからリンクするファイルを 増やし、そのファイル名をフィルコピーにて表に陳列させたいと考えていました。 もし何か良い作業があれば教えていただきたいです。すみませんがよろしくお願いします。

  • 【エクセル・マクロ】 繰り返し貼り付けがしたいです

    仕事で、大量のコピペをしなきゃいけなくなり、 マクロを組みたいのですが、素人でよく分からず投稿させて頂きました。 宜しくお願い致します。 参考画像のように、 A列にあるデータを、B列の数に合わせて C列(色付けしてある列)に繰り返し貼り付けをしたいのです。 ※参考画像では、分かりやすいように姓名にしてありますが、 本当は文章とか数字とかを使います。 参考画像ではA列に5行分、B列に20行分しかありませんが、 本当はA列に50行分、B列に3,000行分あります。 ですから、A列の50行を、3,000÷50=60回も貼り付けするのが面倒で、 3,000という数字も、毎回1,000~10,000と変動するので、 今後のことを考えると、マクロを組んだ方が早いのでは、と思いました。 また、欲を言えば、A列に数式を入れていることもあり、 C列に数式の繰り返し貼り付けをおこないたいのですが、 これは難易度がぐっと上がるのでしょうか? 他力本願で大変申し訳ございませんが、 何卒宜しくお願い致します。

専門家に質問してみよう