- 締切済み
Excel セルの値が変化(加算)した時、その差を別のセルに表示したい
こんにちは。Excelで質問させていただきたい事があります。例えばA1に200という値が入っていたとして、それが220に変化したとします。その増加分だけを別の例えばA2に+20という形で表す事は可能でしょうか?この場合あくまでも200を基準としてどれだけ増えたかを出したいです。どなたか教えていただけますと幸いです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
#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 が現れるので、私のコートの最初、最終行以外をコピペ。 シートにもどって操作してみれば実験できる。
こんにちは。 「A1に200という値が入っていたとして、それが220に変化したとします。」とありますが、どのような方法で数値が変わるのでしょうか? A1に関数が入っているのか、手入力なのか、あるいは・・・この辺がわかれば適切な回答が出来ると思います。
- imogasi
- ベストアンサー率27% (4737/17069)
人間界ではこっちが常識かも知れないが、 エクセルでは、元の値=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が現れる
お礼
imogasiさん、ご回答ありがとうございます! いろいろ試行錯誤しているうちに imogasiさんのおっしゃるとおり、 実際かなりプログラムの知識が必要な問題と感じておりました。 まだまだ私、全然知識が浅いのでいろいろとご教授いただければと思いますm(_ _)m。 imogasiさんの書いていただいた案を、Public mae~End Subまで そのままVBAにコピペさせていただいたのですが、 imogasiさんのおっしゃった結果が得られませんでした…。 そのままコピペではできないのでしょうか? 初歩的な事ですみません…m(_ _)m
お礼
M-SOFTさん、ご回答ありがとうございます! 説明が不足していてすみませんm(_ _)m。 A1は手入力ではなく関数が入っています。 具体的にいうと「合計」というbookのA1に Book1+Book2+Book3という3つのbookの合計値が入るようにリンクしています。 その合計値というのはBook1~3で入力作業を行うとそれに伴い 常に増えていくもので、例えば200だったものが しばらく経つと220、240となっていきます。 その変化の都度、数値の増加分(できれば時間も)を1つ下のセルに書き込んでいくような しくみを作れないかと考えています。(例:5/20 12:20 +20)