• 締切済み

Excel セルの値が変化(加算)した時、その差を別のセルに表示したい

こんにちは。Excelで質問させていただきたい事があります。例えばA1に200という値が入っていたとして、それが220に変化したとします。その増加分だけを別の例えばA2に+20という形で表す事は可能でしょうか?この場合あくまでも200を基準としてどれだけ増えたかを出したいです。どなたか教えていただけますと幸いです。

  • ixcel
  • お礼率66% (2/3)

みんなの回答

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

#1です。 多分 Public mae を(この場合)1行だけ入れてますか。 ツールーマクローVBE、その画面のメニューで 挿入ー標準モジュールの画面が出ます。そこの画面でPublic変数を定義します。 ーー 後はVBE画面の、Sheet1-Sjeet4など見えているプロジェクトエクスプローラーの画面(Frame)でSheet1をダブルクリックし 上部の「General」をクリックすると、自動的に Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub が出現する。 これを使って私のコートの最初、最終行以外をコードを、Sub-EndSubの中間に貼り付ける。 もうひとつ(General部はWorksheetで), 「Declarations」をクリックしてChangeを選択しクリックすると Private Sub Worksheet_Change(ByVal Target As Range) End Sub が現れるので、私のコートの最初、最終行以外をコピペ。 シートにもどって操作してみれば実験できる。

noname#187541
noname#187541
回答No.2

こんにちは。 「A1に200という値が入っていたとして、それが220に変化したとします。」とありますが、どのような方法で数値が変わるのでしょうか? A1に関数が入っているのか、手入力なのか、あるいは・・・この辺がわかれば適切な回答が出来ると思います。

ixcel
質問者

お礼

M-SOFTさん、ご回答ありがとうございます! 説明が不足していてすみませんm(_ _)m。 A1は手入力ではなく関数が入っています。 具体的にいうと「合計」というbookのA1に Book1+Book2+Book3という3つのbookの合計値が入るようにリンクしています。 その合計値というのはBook1~3で入力作業を行うとそれに伴い 常に増えていくもので、例えば200だったものが しばらく経つと220、240となっていきます。 その変化の都度、数値の増加分(できれば時間も)を1つ下のセルに書き込んでいくような しくみを作れないかと考えています。(例:5/20 12:20 +20)

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

人間界ではこっちが常識かも知れないが、 エクセルでは、元の値=A1、新しい入力値=B1、増減はC1に関数を入れる、の仕組みを作るのが常識です。 質問のようなのを実現するのは、VBAのイベントという世界の応用にも見えるが、変化後の値は簡単に渡してくれるが、時間的に一歩もとのA1の値を捉えるのが、仕掛けが要り難しい。 そういうことで質問者も、エクセルの操作でなく、相当プログラムの世界に入り、勉強しないと今すぐ自力では出来ないタイプの問題と思う。 ーー 私の考えた案 こういうのはキワモノであルト思い、あまりお勧めようしない。 Module1に Public mae Sheet1のSelectionChangeイベントとSelectionChangeイベントにそれぞれ Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False a = Target MsgBox Target Target.Offset(1, 0) = a - mae Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) mae = Target End Sub を作る。 ーーー 操作と結果 セルに11と入れると直下セルに11、同じセルに23と入れると直下にセルに12が現れる

ixcel
質問者

お礼

imogasiさん、ご回答ありがとうございます! いろいろ試行錯誤しているうちに imogasiさんのおっしゃるとおり、 実際かなりプログラムの知識が必要な問題と感じておりました。 まだまだ私、全然知識が浅いのでいろいろとご教授いただければと思いますm(_ _)m。 imogasiさんの書いていただいた案を、Public mae~End Subまで そのままVBAにコピペさせていただいたのですが、 imogasiさんのおっしゃった結果が得られませんでした…。 そのままコピペではできないのでしょうか? 初歩的な事ですみません…m(_ _)m

関連するQ&A

  • セルの変化があった日付を別のセルに表示することはできますか?

    セルの変化があった日付を別のセルに表示することはできますか? Excel 2007を使用しています。 あるセルに条件付き書式で数式の値によりセルを塗りつぶす書式に設定しています。 具体的にはそのセルが塗りつぶされるタイミングはある数値以下で塗りつぶされ、 以上になると塗りつぶしなしになるような条件です。 質問としては上記のセルが塗りつぶされた日付を別のセルに表示したく又、塗りつぶし が解除されたら日付の表示も消したいのですが… このような事がエクセルでできるのでしょうか?どなたかよろしくお願いいたします。

  • Excel関数/数式内のセル番地を別セルの値で変化させたい

    Excelの関数についての質問です。 たとえばセルA11に =sum(A2:A10) という数式が入っているとします。 ここで、A1に入っている値が「20」であったら、この数式の内容が =sum(A2:A20) となるようにコントロールしたいのですが、どのように参照式を作ればよいでしょうか。 なお、実際には複数セルの数式を同時に変化させることを想定しています。ご助言いただければ幸いです。

  • エクセルでセル内3桁目に別セルの値を入れたい

    エクセルでセル内3桁目に別セルの値を入れたいです。 例えば  A1に「11111」と入っていて、B1に「3」と入っていたとします。  関数を使ってC1を「111311」という値にしたいです。 自分にはハードルが高すぎて、、、 どなたかご教授いただけますでしょうか? 宜しくお願いいたします。

  • Excel 変化するセル カウント

    Excelで、セルの値が変化するときに、ある一定以上の値になった回数をカウントすることはできますか? 例えば、セルA1の値が2→5→8→3→9と変化したとき、6以上の値になった回数を知りたいので、セルA2に2と表示させたいです。

  • Excelで非表示セルの値を参照させない事は可能?

    Excelでグループ化やhiddenプロパティを使ってA列を非表示にしたとします。 これで値を隠すことは可能ですが、例えばB1セルに"=a1"と入力すればa1の値を確認することは可能です。 これを見せないようにすることは可能ですか? 正直、質問しつつ、たぶん無理だと思っています。 A1の値が1だったときはA列の内容を見せないようにしたい場合、みなさんだったらどのような手段をとりますか? auto_openで別シート等に退避させる、くらいでしょうか?

  • EXCELでセルの値が変化したときだけにマクロ実行

    すいませんが教えてもらえませんか。 タイトル通り、EXCELのある箇所(例としてA1セル)の値が1→0に変化した ときに1度だけ Macro1を実行したいと思うのですが、A1のセルに式をどう 記述したらいいかわからずに困っています。 教えてもらえると助かります。 よろしくお願いします。

  • EXCELのすべてのシートから特定セルの値だけを別のシートに書き出すには

    excelのマクロで別のEXCELファイルを選択して、たとえば、A3、E4、F10のセルの値だけをそのファイル内のシートすべて(シート数は変化)に対して別のEXCELファイルの1シートに各項目としてまとめて書き出すマクロを教えて下さい。 宜しくお願いします。

  • 2.75とかの値をそれぞれ別のセルに移動

    EXCELで別シートにある値(例えば2.75とかの小数点を含む値)をそれぞれ別のシートに移したいのです。 Sheet1の[A1]に"2.75"と入力するとSheet2の[A1]に"2"、[B1]に"7"、[C1]に"5"といったようにしたいのですが、なにか方法はありますでしょうか? どうかよろしくお願いいたします。

  • エクセルの引数の変化の色つけ

    エクセルの質問ですが宜しくおねがいします。 例えばA-Bの答えの傾向がズーと減少傾向が増加傾向になった時の 増加した数字から判り易いように変化を色付けたいのですが、 (A-B)と一緒に引数の書き方と 反対になった時に別な色付けもしたいのですが、わかりません。 以上宜しくお願いします。

  • EXCEL2002でNOW関数により時刻が15分進む毎に,別のセルの値を+1ずつ増加させる方法

    EXCEL2002でセルの時刻(A1)が15分更新されるのに対応させて、他のセル(B1)の数値を+1ずつ増加させる方法を教えて下さい! 例として, A1に9:00 というNOW関数で表示させた値が、9:15⇒9:30⇒9:45⇒10:00 と変化する度に、 B1の値を「1」を初期値として始まり、 1⇒2⇒3⇒4⇒5 と増加させる方法を教えて下さい!

専門家に質問してみよう