• ベストアンサー

エクセル2000で、数式が変わるのを防ぎたい。

1 セルのA1:Z1には=A11 =B11 ・・・=Z11という式が入っています。 2 セルのA2:Z10には表の名前とか、項目名、数式が書いてあります。 3 一回目のデータの入力は、11行目A11:Z11でおこないます。 4 二回目以降のデータ入力は、11行目に、行の挿入を三回おこなってからやります。 またデータの入力は11行目でおこないます。 しかし、このとき、セルA1:Z1の=A11 =B11 ・・・=Z11という式は、=A14 =B14 ・・・=Z14に変わっていて、1行目に入力できません。 5 行の挿入はマクロでやっていますので、ここで=A14に変わった式を=A11に戻せないかどうか聞きたかったのです。 6 ここで作りたい表は、ここのサイトと同じように、新しいデータが上のほうに、古いデータが下にくるようにしたいのです。前にやったのは、データの入力の最後に必ず入力する項目があったので、そこで、マクロで11行をコピー、1行に貼り付けをやっていました。しかし、今回は、最後に必ず入力する項目もなく、また入力しないセルもあります。 7 他に、同じことができるアイデアがあったら、教えてください。 マクロの実行ボタンはすでに二個あるので増やしたくありません。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

#1の方と同じですが、 =INDIRECT(CHAR(64+COLUMN())&"11") 「=A1」の変わりに、「=INDIRECT("A11")」 と入力すれば、挿入されても、「=INDIRECT("A11")」は変わりません。 ただ、A1~Z1まで1つずつ入力しないといけないので、 #1さんの方法にすれば、すべての列にコピーすることができます。 11は"11"としないと表示されないかもしれません。

ki-aaa
質問者

お礼

完璧です。 私が望んでいたものそのものです。 ありがとうございました。

その他の回答 (2)

回答No.3

マクロは詳しくないのですが、 エクセルでコピー時に値を変更したくないときには、 変えたくない部分に$をつけますが、どうでしょうか

ki-aaa
質問者

お礼

ありがとうございます。 その方法は試しましたがだめでした。 違う回答をお待ちしています。

  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんにちは >1 セルのA1:Z1には=A11 =B11 ・・・=Z11という式が >入っています。 この部分を必ず各列の11行目を参照する式すれば如何でしょうか A1~Z1に =INDIRECT(CHAR(64+COLUMN())&11)

ki-aaa
質問者

お礼

補足に間違いがありましたので。 >実際に試しましたところ、=INDIRECT(CHAR(64+COLUMN())&11)の式を先に書き込んであると動きません。 これは間違いです。 =INDIRECT(CHAR(64+COLUMN())&11)の式を先に書き込んで、一度、ファイルを閉じてから開くと、うまくいきました。 申し訳ありません。 判っていたら、ポイントは、先着順にしたかったです。

ki-aaa
質問者

補足

早速に回答ありがとうございます。 実際に試しましたところ、=INDIRECT(CHAR(64+COLUMN())&11)の式を先に書き込んであると動きません。 11行に、入力したあと、セルのA1に=INDIRECT(CHAR(64+COLUMN())&11)を貼り付けると動きました。また、行はどの位置でも動くんですね。 ということは、毎回貼り付けをやらないといけないということでしょうか。 また、違う方法がありましたら、教えてください。ありがとうございました。

関連するQ&A