• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでシートにリンクを貼り付けているのですが元シートに行を挿入した)

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

このQ&Aのポイント
  • エクセルでシートにリンクを貼り付けている際、元シートに行を挿入した場合に、リンク先シートの行も挿入する方法を説明します。
  • エクセルのバージョンが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関数を使っているので偽の条件に計算式をわかりやすく入れられる事 私の理想通りでございます。 まったく思いつかなかったアイディアでございます。 ありがとうございます。 助かりました。