• ベストアンサー

入力の切り替え

Excel(verが2002)で、あるセルの条件で入力の切り替えが出来ないでしょうか? 実例を言うと、A1にある数値が入力されていて、B1に"Y"か"N"を入力するようにします。 もしB1に"Y"が入力されたら、C1を入力してD1にはA1+C1の結果を返すようにします。 B1に"N"が入力されたら、D1を入力してC1にはD1-A1の結果を返すようにしたいです。 出来ればマクロを使わずにExcelの関数で行いたいと思いますが、出来るのであれば教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
noname#123709
noname#123709
回答No.1

一つのセルに数式や数値を両方持つことは無理です。 C1のセルに仮に数式が入っていたとしても、条件によりそのセルにユーザー が入力をすると数式は失われますから・・・。 関数云々の問題じゃないですよね。 一度きりなら可能でしょうけど・・・。

その他の回答 (2)

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

ある1つのセル(質問ではD1など)に、ある時は値を手入力でいれ、あるときは関数式を使いたいというのはできません。「手入力」で「式のあるセルに値を入れる」と、式が壊れます。 エクセルの関数式の大原則で、これを意識してない、不可能なことを聞いている質問です。 VBAなら何とでもなります。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.2

循環参照になるので不可能ですが、擬似的に行うのであれば次のような方法が考えられるかも知れません。 C1に ~=IF(B1="N",A1-D1,"") D1に ~=IF(B1="Y",A1+C1,"") を入力します。文字色を白にして、A1またはB1を条件とする条件付き書式で文字を黒にすれば隠せます。 B1およびC1またはD1に値を入力した後に、C列D列の~=を=に置換します。 やってみましたがあまり賢くなかったですね。 入力制限等ができないので、マクロの方がよいでしょう。

関連するQ&A

  • Excelマクロ 入力の有無を判定するマクロを組みたい

    はじめまして。 マクロの初心者です。 エクセルマクロを利用して、セルに何か入力(文字でも数値でも)がある場合の判定をしたいのですが、うまくいきません。 具体的には、 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何か入力された場合 → D1セルに"○"を出力。 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何も入力がない場合 → D1セルは"(空白)"。 ・但し、大前提として、A1セルに"×"が入力されている場合 → D1セルに"×"を出力。 (B1からC10セル(10個のセル)のいずれかのセルに何か入力されている場合でも、A1セルが"×"ならばD1セルは"×"とする) としたうえで、同様の判定を ・A11セルおよびB11からC20を判定しD11セルに結果を出力、 ・A21セルおよびB21からC30を判定しD21セルに結果を出力、 … と繰り返して、A100セルまで実行させたいと考えています。 (D1、D11、D21、D31、D41、D51、D61、D71、D81、D91の10個のセルに"○"、"×"、"(空白)"の結果を出力したいです) 過去の投稿や解説書などを参照にしているのですが、なにぶん本当に初心者のためうまくいきません、、、 どなたかお力添えをお願いします。

  • マクロで複数のセルに数値を入力したい

    エクセル、マクロとも初心者なのですが、タイトル通りのことをするにはどうしたらよいか教えてください。 やりたいことは、 「指定したアクティブセル(毎回変わる)を選択し、その隣のセルにあらかじめ決められた数値をマクロで入力する」というものです。 例えば・・・ A1をアクティブにし、マクロを実行する B1、C1、D1、E1のセルに決められた数値が入力される こんな感じです。 基本的なことかもしれませんが、どうかよろしくお願いします。

  • エクセルのVLOOKUP関数

    エクセル2003,2007,2010を使っています。 セルA1に「3Z」を、セルC1からC3にそれぞれ「X」,「Y」,「Z」を入力し、セルB1に「=VLOOKUP(A1,C1:C3,1,TRUE)」を入力すると、結果が「#N/A」になってしまいます。 なぜ、検索出来ないのでしょうか? また、セルC3を「3Z」にしても同じく結果が「#N/A」になるのに、さらにセルC2を「2Y」にすると結果が「3Z」となるのですがなぜでしょうか?

  • エクセル マクロ 入力制限について

    検索で探したのですが、うまくヒットしないため、質問させていただきます。 エクセルのセル入力制限についての質問です。 D1セルが空白でなかったら、A1・B1・C1に入力できないようにする と言う条件です。 それを、D1セルだけでなく、行すべてに適用したいのですが、 (D2 に入力されていたら、A2・B2・C2を入力できなくする) マクロで処理できるでしょうか? マクロ実行は、オープンしたときに実行するようにしたいと考えております。 ご教授お願いします。

  • エクセルのセルに記述した式をVBAで読込む方法

    エクセルのセルに  a*x^2+b*x+c という式を埋め込んでおいて  (式はa,b,cの数値は定数、xはマクロ側でいろいろな数値を指定されます。) VBAのマクロに  ε=a*x^2+b*x+c のように式を埋め込む方法はないでしょうか。 例えば  n=....  x=sin(n*3.14/180) ε=a*x^2+b*x+c  Range(”D2”).value=ε   この中段の行にエクセルのセルの式を呼び出したいのです。 この式はセルにはいろいろな2次式、3次式が任意に組み込まれ、VBAを実行するたびに埋め込まれた式に自動的に記述し直すようにしたいのです。 (数式の結果の数値を入れるのではなくて式を入れたいのです) 可能でしょうか。その場合どのようなコードが考えられるでしょうか。 よろしくお願いします。

  • あるセル内の計算結果を固定数値として違うセルに代入する方法

    あるセルで計算した結果を違うセルの位置に固定数値として代入する方法はあるのでしょうか? 例えば、A1のセルに変数Xが入っており、B1のセルに変数Yが入っていたとします。 そしてC1のセルで、ある計算をしていたとします。 で、X=Yの条件を満たした時はC1のセルの計算結果の数値をセルD1に数値として自動で代入するという作業をやらせたいのです。 試しに適当なセルに、=IF(A1=B1,D1=C1,0)なんて式を作ってみましたが、当然のようにD1=C1なんて表現はできないのでエラーとなります。 D1のセルに=IF(A1=B1,C1,0)と入れれば、A1=B1の条件を満たした時だけはD1のセルにC1の計算結果が入りますが、D1のセル内が数値でなくあくまで条件式である以上、条件が変わればエクセル上のD1のセルの表示も変わってしまいます。あくまでC1の計算結果の数値をそのままD1に数値のデータとして入力させて記憶させておきたいのですが。 どうやったらいいのでしょうか? D1のセルに=C1と入れておけば、D1のセルにはC1の計算結果が常に表示されるわけですが、C1の計算自体が他のセルのデータによってその都度変動するため、D1も同じように変動してしまいます。 ですので、A1=B1を満たした時のC1の計算結果をD1に記憶させておくという作業をしたいわけなんです。

  • エクセルの計算式について

    こんにちは。 今エクセル2010を使っています。やりたいことがあるのですがどうやっていいかわからず困っています。 A1のセルに40と入れるとB1に75、C1に10、D1に5。 で、同じくA1に今度は38と入れるとB1に60、C1に5、D1に10というように A1に入れる数値によってB1・C1・D1の数値も変わってくるようにしたいんです。 40と入れたら75・10・5、38なら60・5・10とパターン化された数値が入るのですが このパターンが20通りぐらいあります。 こういうのってマクロになるんでしょうか。初心者なのでマクロはよくわからなくって・・・。 詳しい方いらしたら教えていただけないでしょうか。 よろしくお願いいたします。

  • 【Excel】条件による入力規則について

    Excelにて、以下の対応を行いたいです。 マクロ等を使わずに行う方法があれば、教えてください。 例) ※以下、実際に入力するものは、<>の中に書かれているものです。 A1のセルに<○>と入力すると、自動的にB1、C1、D1に<->と入り、且つA1、B1、C1、D1のセルが赤色セルとなる。 A1のセルに<×>と入力すると、自動的にB1、C1、D1には何も入力されない<空白>。 使用している環境は以下です。 Windows XP Professional SP3 Microsoft Office Excel 2003 SP3 宜しくお願いします。

  • 複数セルの入力内容で異なる値を返すマクロ

    次のようなマクロってどのように組めばいいのでしょうか。 例えば,A1のセルに「あ」B1に「1」C1に「2」が入力されているときにはD1に500を返す。A1に「い」B1に「2」C1がブランクのときにはD1に250を返す,のように複数のセルの入力内容によって異なる値を返したいのですが,このようなマクロってどのようにすれば組めますか。 マクロの初心者です。

  • 関数の自動入力について

    セルA列に数値を入力し、B列にある数値を入力すると、C列に自動に数値が入力されるように、設定をしたいです。 例えば、セルAの1に10と入力してあり、セルBの1に、20と入力すると、自動にCの1に30という結果(足し算)が入力されるような設定はどうすれば良いですか。 お願いします。

専門家に質問してみよう