エクセルで挿入した行に対応するリンク先シートの行を挿入する方法

このQ&Aのポイント
  • エクセルでシートにリンクを貼り付けている際、元シートに行を挿入した場合に、リンク先シートの行も挿入する方法を説明します。
  • エクセルのバージョンが2003である場合でも、マクロを利用して行を挿入することができます。
  • マクロを組む方法が分からない場合でも、以下の手順を試してみてください。
回答を見る
  • ベストアンサー

エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した

エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した場合にリンク先シートの行も挿入になってほしいのですが・・・ 例えば Sheet1    A    B 1 Aさん  150 2 Bさん  270 3 Cさん  100 4 Dさん  300 5 Eさん  350 と入力し、Sheet2に以下の式?を入力した場合 Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A3  =Sheet1!B3*2  ->  3 Cさん  200 4 =Sheet1!A4  =Sheet1!B4*2       4 Dさん  600 5 =Sheet1!A5  =Sheet1!B5*2       5 Eさん  700 このようになるかと思います。 Sheet1の3行目に行を挿入した場合ですが Sheet1    A    B 1 Aさん  150 2 Bさん  270 3 ←行の挿入→ 4 Cさん  100 5 Dさん  300 6 Eさん  350 Sheet2は以下のようになってしまします。 Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A4  =Sheet1!B4*2  ->  3 Cさん  200 4 =Sheet1!A5  =Sheet1!B5*2       4 Dさん  600 5 =Sheet1!A6  =Sheet1!B6*2       5 Eさん  700 元シートに行を挿入した場合以下のようになってほしいのですが方法はございますでしょうか? Sheet2の式                   Sheet2の表示      A        B               A     B     1 =Sheet1!A1  =Sheet1!B1*2       1 Aさん  300 2 =Sheet1!A2  =Sheet1!B2*2       2 Bさん  540 3 =Sheet1!A3  =Sheet1!B3*2  ->  3  空白  空白 4 =Sheet1!A4  =Sheet1!B4*2       4 Cさん  200 5 =Sheet1!A5  =Sheet1!B5*2       5 Dさん  600 6 =Sheet1!A6  =Sheet1!B6*2       6 Eさん  700 因みにエクセルのバージョンは2003です。 いろいろと調べてみたのですがやり方を見つける事ができませんでした。 マクロを組めば出来そうな気もするのですがなにぶん素人なもので組み方もわからず困り果ててしまいました。 初歩的な質問で申し訳ございませんがどなたかご指導よろしくお願いします。

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

  • ベストアンサー
  • conanthe
  • ベストアンサー率65% (114/175)
回答No.2

こんにちは。ハンドルネームconantheです。解決法を2つ考えました。 1つめは、シート1とシート2を選択しておいてから行挿入する方法です。Shiftキーを押しながらシート1とシート2の下のタブをクリックすれば、シート2枚が選択できます。選択後、行挿入します。シート2の3行目に新たに式をコピーしなければいけませんが、これが一番単純なやり方です。 2つめは、「=Sheet1!A1  =Sheet1!B1*2」の代わりに下の式を使う方法です。 =OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1)  =OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1)*2 シート2の行は増えませんが、データは下へ1行ずつスライドします。行挿入後、シート2の一番下の行の式を下に1行分コピーしてください。前もって無人の行にも式を入れておけばこの手間は省けます。0が並んで見苦しいですが、0を非表示に設定しておけば回避できます。 どちらのやり方も、シート1とシート2の構造が同じと仮定してあります。つまりAさんは必ず1行目にいるということです。違う場合は、少し式を変えなければいけません。

hide_bow
質問者

お礼

conanthe様、こんにちは。 ご回答ありがとうございます。 2つも案を頂きまして本当に恐縮しております。 一つ目のやり方につきましては私が素人と宣言した事へのご配慮と思っております。 やはりconanthe様が懸念された通り新たに式をコピペしなければいけないのがちょっとネックです。 ただ、シートを2枚同時に選択する方法は知らなかったので勉強になりました。 二つ目のやり方は素晴らしいです。 OFFSET関数を使う方法などは思いつきもしませんでした。 初めは読んでいて意味不明でしたが記述してみると「なるほど~」といった感じです。 解説にもコメントしてありますが挿入ではなくスライドといった考えなのですね。 シート1と2が同じ構造である事が条件である事も理解できました。 ご指摘通り構造条件がずれた場合はOFFSETの始まり、もしくはOFFSET値を変更する必要がありますね。 素人が陥りそうな懸念事項までしっかりとフォローしてある回答よりconanthe様のお人柄が想像できます。 ご多忙の中、ご回答ありがとうございます。

その他の回答 (3)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.4

間違えました。 >>まず、行挿入したい列から、最終列までをコピーします。 まず、行挿入したい行から、データのある最終行までをコピーします。

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.3

こんにちわ。 それは、コピー、貼り付けを行うとできます。 まず、行挿入したい列から、最終列までをコピーします。 それを一行下に貼り付けます。 挿入したい行をクリアします。 これでいいと思います。

hide_bow
質問者

お礼

ki-aaa様、こんにちは。 ご回答ありがとうございます。 読ませてもらった瞬間に「これは間違いなく出来る」といった単純明快なやり方ですね。 シンプルすぎて自分が何を迷っていたのかと思わず苦笑いしてしまいました。 コピペ後に元行を削除すれば行を挿入したのと同じ事になりますね。 しかも、リンクの並びもコピーですから崩れる事はありませんね。 行を挿入する事で頭が固まってしまい、まったく思いもつかないやり方でした。 「エクセルの裏技」といった印象を持ちました。 ありがとうございました。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

INDIRECT関数を使う手もありますが、INDEX関数を使う方法を紹介します。 Sheet2のA1に以下のように入れ、縦横コピーします。 =IF(INDEX(Sheet1!A:A,ROW())="","",INDEX(Sheet1!A:A,ROW()))

hide_bow
質問者

お礼

kybo様、ご回答ありがとうございます。 あまりに早い回答でビックリしました。 なるほど、範囲内にデータがあるか否かで判定する方法ですね。 たしかに出来ますね。 (1).元シートに行を挿入すると参照先のシートが空白になる事 (2).IF関数を使っているので偽の条件に計算式をわかりやすく入れられる事 私の理想通りでございます。 まったく思いつかなかったアイディアでございます。 ありがとうございます。 助かりました。

関連するQ&A

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • エクセル行の挿入

    excelに行を追加する方法を教えてください! Bにある数からマイナス1行下に挿入したいのです。 1→挿入なし  2→下に1行挿入  3→下に2行挿入 数よりマイナス1行の挿入をしたいのですが、 マクロ、関数など全く分かりません。 以前の質問も見てみたのですが、見当たらないのと、 マクロ?が全くわからないので、 どなたか一から教えていただけないでしょうか? 本当に申し訳ないのですが、お願いします。 Aにkkkk Bに数が入ります。   A | B | C | D ------------------------------------- 1| kkkk   2 ------------------------------------- 2| kkkk   1 ------------------------------------- 3| kkikk   3 ------------------------------------- 4| kkkk   2 ↓行の挿入   A | B | C | D ------------------------------------- 1| kkkk   2 ------------------------------------- 2| kkkk   空白(行の挿入) ------------------------------------- 3| kkikk   1 ------------------------------------- 4| kkkk   3 ------------------------------------- 5| kkkk   空白(行の挿入) ------------------------------------- 6| kkkk   空白(行の挿入) ------------------------------------- 7| kkkk   2 ------------------------------------- 8| kkkk   空白(行の挿入) -------------------------------------

  • Excelのシート間でのリンクの仕方について

    Excel2007での質問です。 下の様な一覧表があるとします。   A  B  C  D  E 1 あ い う  え お 2   き く  け こ 3 さ  し す  せ  そ この入力した一覧表を別のシートに下記のような票にしてリンクさせたいのですが これは可能な事なのでしょうか? A  あ    A  さ B  い    B  し C  う     C  す D  え     D  せ E  お     E  そ ※上記の『2』の行の『きくけこ』は『A』列に入力がないのでリンクさせません。 『A』列に入力した行のみを、別のシートにリンクさせる方法です。 どなたか、おわかりになる方。 Excelは初心者も同然です、宜しくお願いいたします。

  • EXCEL 3行おきリンク

    "SHEET1  A  B  C  D ・・・ 1 50 2 3 4 55 5 6 7 52 SHEET2  A  B  C  D ・・・ 1 50 2 55 3 52 4  上のように、SHEET2からSHEET1に3行おきに リンクさせたいのですが、どのようにすればよいでしょうか? マクロはよくわかりません。 よろしくお願いいたします。"

  • excelのマクロで条件による行の挿入

    列AとBがあり列Aに学校のクラス名A組、B組、C組・・・(20クラスほど)と氏名が 入るエクセルシートがあるのですが 先頭行はA組から始まり5行区切りで数え、(A組も5行のうちに入る) その5行内に次のB組が入らないように空白行を挿入したいです もし、5行以内にB組がない場合、次の5行でまたB組があるか判定しなければ氏名5つ あれば空白をいれてというのを20クラスぶん作るマクロは可能でしょうか? VBAの知識がさっぱりないので途方にくれています。 元のデータの例   マクロ実行後 列A   列B      列A   列B A組           A組   氏名1 111      氏名1 111  氏名2 222      氏名2 222 B組           空白行挿入 氏名3 333      空白行挿入 氏名4 444      B組 氏名5 555      氏名3 333 氏名6 666      氏名4 444 氏名7 777      氏名5 555 C組 氏名6 666              氏名7 777              空白行挿入              空白行挿入              空白行挿入              空白行挿入              C組  

  • エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ

    エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。 sheet1を印刷用ページ、sheet2をデータ用ページとしています。 sheet2は頻繁に追加や削除をするのですが、単純な =sheet1!A1 ですと、 sheet2に追加してもsheet1に追加されたデータが反映されない。 sheet2の行を1つでも削除するとsheet1のその行は#REF!というエラーに。 という状態です。下記内容に対応できる関数はあるでしょうか。 sheet2がこのような時 行  A あ B い C う D え sheet2Dに「お」を挿入すると sheet1がこのようになるように。 行  A あ B い C う D お E え また、B行を削除したらsheet1が 行  A あ B う C え となるように。 そして、可能ならばコピーのドラッグで複製できるようにしたいのですが・・・ 条件が色々ありますが、よろしくお願いします。

  • エクセルマクロ、集計行の上に空白行挿入

    エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。

  • エクセルで別ワークシートからリンク貼り付けしたいのですが

    ご知見ある方ご教授ください。 現在、結構な数のデータが入ったエクセルデータから、必要な部分だけを別ワークシートに貼り付けたいのですが、その際、空白セルがある行はリンク貼り付けしないように設定したいと考えています。 例えば    A B C D E 1  5 3 2 8 7 2  4 _ 5 4 _ 3  7 7 4 3 1 4  6 3 5 _ 4 5  5 2 _ 6 5 のデータで、ABC列のデータを別ワークシートにまとめる際、2行と5行は反映させず、    A B C 1  5 3 2 2  7 7 4 ← 最初のワークシートの3行目 3  6 3 5 ← 最初のワークシートの4行目 となるようにしたいと考えています。 よろしくお願いします。

  • Excelでの抽出(検索?)

    エクセルを使い、シートAにID(100件)を、シートBに不要なID(10件)が入っています。 このとき、シートCにA-Bの90件のIDを表示させたいのですが、どのような方法があるでしょうか。 シートCは、シートAで不要なIDの入っていた行が空白になって100行目まで表示されても、詰まって90行まで(空白がなく必要なIDのみ)が表示されてもどちらもでかまいません。 例えばこんな感じです。 シートA シートB シートC A12    B34    A12 B34    D78    C56 C56          E90 D78 E90 よろしくお願いいたします。

  • 行を挿入してもリンクしている表が変化しないのはなぜ

    リンクさせている表で片方の表に行を挿入するとリンクされているシートにも行は挿入さないのはなぜ 2つのシートがあって、1つめのシートにはリストが、2つめのシートには1つめのシートのリストを3行表示にさせたく思っています。 1つめのリストに空白の行挿入すると2つめのシートには空白の行が挿入されないのです。どうすれば2つめのシートに空白行を挿入できますか 例 <シート1>  赤1 リンゴ 赤2 ミカン 赤3 柿 赤4 梨 赤5 栗 白1 スイカ 白2 メロン 白3 イチゴ 白4 トマト 白5 バナナ 黒1 ブドウ 黒2 パイン 黒3 桃 黒4 マンゴー 黒5 キウィ <シート2> 赤1 リンゴ  白1 スイカ  黒1 ブドウ 赤2 ミカン  白2 メロン  黒2 パイン   赤3 柿    白3 イチゴ  黒3 桃 赤4 梨    白4 トマト   黒4 マンゴー 赤5 栗    白5 バナナ  黒5 キウィ <シート2>のセルには =シート1!A1 =シート1!B1 =シート1!A6 =シート1!B6 =シート1!A11 =シート1!B11 =シート1!A2 =シート1!B2 =シート1!A7 =シート1!B7 =シート1!A12 =シート1!B12 =シート1!A3 =シート1!B3 =シート1!A8 =シート1!B8 =シート1!A13 =シート1!B13 =シート1!A4 =シート1!B4 =シート1!A9 =シート1!B9 =シート1!A14 =シート1!B14 =シート1!A5 =シート1!B5 =シート1!A10 =シート1!B10 =シート1!A15 =シート1!B15 そこでシート1の6行めに空白を挿入して 赤1 リンゴ 赤2 ミカン 赤3 柿 赤4 梨 赤5 栗 <空白行を挿入> 白1 スイカ 白2 メロン 白3 イチゴ 白4 トマト 白5 バナナ 黒1 ブドウ 黒2 パイン 黒3 桃 黒4 マンゴー で <シート2> 赤1 リンゴ           白5 バナナ   赤2 ミカン  白1 スイカ   黒1 ブドウ   赤3 柿    白2 メロン   黒2 パイン  赤4 梨    白3 イチゴ   黒3 桃 赤5 栗    白4 トマト   黒4 マンゴー と<シート2>と表示させたいのですが、どうしても当初の表になるのです 空白挿入はできないのでしょうか?

専門家に質問してみよう