- 締切済み
Excelの関数またはVBAについて
A1-B1の結果がC1に出るような表を作りました。C1の結果が自動でA1に表示され、ループするようにしたいのですが VBAになるのでしょうか?VBAは全くわからないので、できれば列を挿入するなどして関数で出来たら。。。と思ってます。すいませんが、ご教授ください。お願いします
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
(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)のやり方は操作だけで出来ます。興味あれば 操作説明を入れます。
- ShadowMoon
- ベストアンサー率59% (73/122)
NO.3のものです。補足させていただきます。 C列の右の方向にオートフィルでもいいならば、 (1)D1のセルに=C1-$B$1と入力 (2)D1のセルを選択し、オートフィルでE1,F1・・・・とコピーする。 でもできますね。
- ShadowMoon
- ベストアンサー率59% (73/122)
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)
A1:C2を選択してCtrl-Dでフィルして、セルA2に「=C1」と置き、A2:C8192を選択状態にしてフィルするってのだけでは、ダメですか?
- taitan72
- ベストアンサー率30% (21/70)
ご質問内容を実現するには、C1の結果を数値としてA1に入れて、循環参照にならないようにする必要がありますね。そうなるとやはり関数では厳しいのではないでしょうか。 セルに値を入れたりループさせたりするのは、VBAの基本中の基本なので、それほど難しくはないはずです。関数であれこれ悩むよりも、この機会にVBAをちょっと勉強したほうが早いかも知れませんよ。 回答になってませんでしたね。すみません…
補足
回答ありがとうございます。やはりVBAですか。ちょっとがんばってみますが、またわからないことがあれば教えてください。よろしくお願いします
補足
Ctrl-Dでフィルするというのを行いましたが、何も変化がないのですが、これはどうなるのでしょうか?とても無知ですいません。ちなみにExcelのバージョンは2002です。