• 締切済み

Excelの関数またはVBAについて

A1-B1の結果がC1に出るような表を作りました。C1の結果が自動でA1に表示され、ループするようにしたいのですが VBAになるのでしょうか?VBAは全くわからないので、できれば列を挿入するなどして関数で出来たら。。。と思ってます。すいませんが、ご教授ください。お願いします

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

(1)A1セルとB1セルに入る、質問者が入れようとしている具体的な何の数値なのか、説明してくださったほうが良いと思う。方法論として、初めに戻って質問の方向以外の方法がありそうに思います。 (2)#3の解答で、$B$1と固定になっていますが、それで良いのですか。事の理から一定値にならざるを 得ないのだが、それならA1セルに次々等差数列値を 入れることを考えれば良い訳です。 行を沢山作ることを認めてくれるなら、オートフィル で実現します。 (3)各ステップの結果を示す行(または列)は作ってもよいのですか。むしろ経過数値はシート上に残すべきなのですか。#3の解答などはそれが当然になっているが。 (4)A1セルに順次例えば3ずつ増える数値をセットしたいならこう言う手もあります。 ・コンボボックスを貼りつける。 ・LinkedCellにA1を入れる。 ・ListFillRangeに(例えば)E1:E10とする。  E1からE10に例えば1、4,7,10、・・・を入 れる。 (5)(4)でコンボボックスの▼をクリックすると  1、4,7,10、・・・が現われるから、例えば4を  クリックすると、A1に4がセットされる。  E1からE10(20でも30でも増やせる)には、法 則性のない諸数値を入れても良い。  (4)のやり方は操作だけで出来ます。興味あれば  操作説明を入れます。

回答No.4

NO.3のものです。補足させていただきます。 C列の右の方向にオートフィルでもいいならば、 (1)D1のセルに=C1-$B$1と入力 (2)D1のセルを選択し、オートフィルでE1,F1・・・・とコピーする。 でもできますね。

回答No.3

VBAを使用しないのであれば、NO.2の方のようにオートフィルを利用するのがいいですね。 (1)A2のセルに=C1と入力 (2)C1のセルは=A1-$B$1と入力(B1入力中にF4キー押下で絶対参照になります。) (3)A2のセルを選択し、オートフィルでA3、A4、・・・・とコピーする。 C1のセルを選択し、オートフィルでC2,C3・・・・とコピーする。 (C1のセルをC2にコピーし、A2からC2までを範囲選択して、行の下の方向にオートフィルでコピーしてもいいですけど。) の方法でできます。ご参考になれば幸いです。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

A1:C2を選択してCtrl-Dでフィルして、セルA2に「=C1」と置き、A2:C8192を選択状態にしてフィルするってのだけでは、ダメですか?

jinah
質問者

補足

Ctrl-Dでフィルするというのを行いましたが、何も変化がないのですが、これはどうなるのでしょうか?とても無知ですいません。ちなみにExcelのバージョンは2002です。

  • taitan72
  • ベストアンサー率30% (21/70)
回答No.1

ご質問内容を実現するには、C1の結果を数値としてA1に入れて、循環参照にならないようにする必要がありますね。そうなるとやはり関数では厳しいのではないでしょうか。 セルに値を入れたりループさせたりするのは、VBAの基本中の基本なので、それほど難しくはないはずです。関数であれこれ悩むよりも、この機会にVBAをちょっと勉強したほうが早いかも知れませんよ。 回答になってませんでしたね。すみません…

jinah
質問者

補足

回答ありがとうございます。やはりVBAですか。ちょっとがんばってみますが、またわからないことがあれば教えてください。よろしくお願いします

関連するQ&A