• ベストアンサー

新旧の数値の比較

cj_moverの回答

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

こんにちは。 VBA(マクロ)でやるしかないです。 導入手順■ ■処理対象シ-トのシートタブを右クリック Visuak Basic Editor(VBAの編集画面)が表示されるので、 ■子ウィンドウの中で一番大きく、真っ新なウィンドウに  以下の記述(この行から‐この行まで)をコピーして、  過不足なく貼り付け。 ' ' この行から Private Sub Worksheet_Change(ByVal Target As Range) ' 8806664   If Target.Count > 1 Then Exit Sub   ' ' 例えば、処理対象を"A1:A30"に指定する場合★運用に合わせて適宜修正   If Intersect(Range("A1:A30"), Target) Is Nothing Then Exit Sub Dim buf   buf = Target.Value   With Application     .EnableEvents = False     On Error Resume Next     .Undo     ' ' 例えば、変更前後の差を処理対象の1列右(, 1)に指定する場合★運用に合わせて適宜修正     Target.Offset(, 1).Value = buf - Target.Value     Target.Value = buf     .EnableEvents = True   End With End Sub ' ' この行まで ■Alt + F11 キーでExcel画面に戻る。 ▼マクロ無効ブック(拡張子が.xlsx)である場合は、  マクロ有効ブック(拡張子が.xlsm)として新規に[名前を付けて保存]する。 ▲元々マクロ有効ブック(拡張子が.xlsm)であった場合は上書き保存する。 導入手順■以上。 差の数値の表示方法については、Excelのメニューから、 [セルの書式設定][表示形式]をお好みで設定してみて下さい。 以上のマクロは、手作業で単セルの値を入力または確定した時に動作します。 #経験的にこの手の課題はWebクエリやRSSの値変動を追跡するニーズである場合が多いのですが、 > あるセルの数値を変更たとき と書いてあって、  あるセルの数値 が 変更 された とき とは書いてない、ということから類推して、 上述の通り、手作業での値変更に関する課題であろうと判断してお応えしています。 もしも、WebクエリやRSS絡みの課題でしたら、 要点を整理して、必要十分な説明を施すようにして、 再度、別の質問として建て直してください。 ★印の行、2ヶ所は、そちらで運用に合わせて書き換えてください。 うまく行かない、とか、解らない点があれば、補足欄に詳しく書いてみて下さい。 以上です。

goonaosan
質問者

お礼

丁寧なご回答に感謝します。当方エクセルは基礎的な知識のみで使っている初心者で、マクロを用いる必要性が今まではなかったのですが、やはりいつまでも使わずにいるわけにはいきませんね。直ちにやれるかかどうかは分かりませんが、試させて頂きます。 実はあるセルのデータを日々上書きにより変更を行っているわけですが、後になって前日のデータと比較を行いたいときが往々にしてあり、そのセルの旧データがどこかに表示されていればいいなと思ったので質問させて頂きました。ありがとうございました。

関連するQ&A

  • Excel 2003で計算された数値と比較

    Excel 2003の表計算で計算された数値と基準になる数値(予めセルに入力)を比較させて、その数値の差を+-付き数値で表示させる事は可能でしょうか?可能ならばその表示方法(計算式等)を教えて下さい。よろしくお願い致します。初心者につきイメージしたままを文章にした為、説明が下手ですがよろしくお願いします。

  • エクセルにてセルへ数値を入力時、事前に入力していた値との差を別のセルに表示させたいです。

    エクセルにてA1のセルに数値を入力した場合(事前に入力していた値-入力値)の差を隣のセル(B1)に表示し、再びA1に入力した数値の差をそのまた隣のセル(C1)に表示、再びA1に入力した数値の差をそのまた隣のセル(D1)に表示、再び… と繰返し入力した数値の差を右列へ順番に表示させていきたいのですが、どなたか方法を教えて下さい。 又、入力した時点の日付けも、差を表示させた下のセルに表示させる方法もお願いします。

  • EXCELでの数値の比較

    別々のセル(A1、B1とします)に、それぞれ100と90が入力されていたとして、 A1とB1が同じ数値であるか、もしくはA1とB1+10の値が同じ場合は×、違う場合は○ としたい場合の関数の使い方を教えてください。

  • Excel 数値比較について

    A列に基準値、B列に結果の数値、C列にその差異の数値を表示したい場合は、どんな数式?関数?を利用すればいいですか。 例えば, セルA1に10、B1に8の場合、C1に2という数値を表したい。 セルA1に5、B1に10の場合、C1に-5という数値を表したい。 お願いします。

  • 数値を表示だけ特定の文字列に変換したい。

    Excelにて、セルに数値を入れた際に表示だけ特定の文字列に変換したいです。 例えば 0.5 → ”半分” 1  → ”全部” 0~1までの少数第二位までの数値 → ”ちょっと” という形にしたいです。 ただ、別のセルの計算式で値を使うため、表示だけを変更したいのです。 書式設定でできるのかと思っていましたが、うまくいきませんでした。 どなたか教えて頂けないでしょうか?

  • ある数値を始めて越えた時の値が知りたいです。

    A列に以下のような数値があります。B1セルに、初めて2.00を越えた時の値を表示させたいのですが、 どのような方法があるでしょうか?(下では2.10が欲しい数値です) 2を越える一つ前なら以下の関数で出来ました。 =VLOOKUP(2,A:A,1,TRUE) 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 あと、下の数列のように、上の行に2より大きな数字があると、VLOOKUP関数だけだと一つ前すらも求めることが出来ません。 表示させたいのは、『一つ上のセルが2より小さく、初めて2.00を越えた時の値です。』 4.19 3.39 2.68 2.08 1.65 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 関数だけで駄目であればマクロでも構いません。良い方法が無いでしょうか?

  • ワードで二段で新旧比較をする

    定款の変更などでワードを使って、新旧比較対応書類を作るのですが、 新旧とも、ワードファイルになっているのですが、どうしたらスムーズに作業できるのでしょうか? 書式は、A4を縦二段にして横書き、左が旧定款、右が新定款としたいのです。左右が別々に編集できればいいのですが、そんな方法ありますか?

  • エクセルのデータが数値として認識されません

    他から受け取ったデータが、表示形式を変更しても数値として認識されません。 1.初めてデータを受け取ったとき、計算ができないので確認してみると、たとえば 5 と表示されているセルに =”5”のように数式が設定されていたので、シート全体をコピー→形式を指定して貼り付け →値 の処理をしました。 2.セルの内容は 5 になったのですが、文字がセルの左詰めになっているので、セルの書式設定を数値にしたり、標準にしたり、ユーザー設定がされていないか確認したのですが、状況が変わりません。 3.ひとつのセルをダブルクリックすると、数値に変換され、計算の対象になります。 このような状況です。3.のようにダブルクリックすれば解決はするのですが、データの量がとても多いのですべてをダブルクリックするわけにはいきません。一度で変換する方法を教えてください。 何か最初の処理に問題があったのでしょうか?ものすごく困っています。どうかよろしくお願いします。

  • エクセル 数値を比較して色づけ

    エクセル2000で、時系列が上から下に流れる数値データを入力したのですが、アクティブなセルの数値を常にひとつ上のセルの数値と比較して、小さければ赤で表示するように設定したいと思っています。 条件付書式では各セルごとに設定しなければならず、量が多いので書式をオートフィルするような機能があればと思っています。 どなたかご存知の方いらっしゃいましたらよろしくお願いします。  

  • エクセルでこんなこと出来ますかね?(数値がマイナスなら0と表示して、プラスならそのままの数値を表示)

    エクセルでたとえば セル1の値がマイナスなら0と表示して、プラスならそのまま数値を表示させることは可能でしょうか??