• ベストアンサー

(エクセル)値を変更したセルの見つけ方。

(例)100行×100列にデータ入力されたシートで、そのひとつのセルの値だけ変えた場合、変更前と変更後のファイルを見比べ、そのデータの変更されたセルを特定する方法を教えてください。 (今は、目視でチェックしているので大変、非効率で困っています。)

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

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

毎日の作業とかならもうすこしいい方法があると思いますが、とりあえず手っ取り早い方法を。 片方のファイルの該当範囲を選択してコピー もう一方のファイルの同範囲を選択して右クリック→形式を選択して貼り付け 貼り付けから「値」を、演算から「減算」を選択してOKを押す。 変更されていないセルは0に、そうでないセルは0以外の値になります。

その他の回答 (2)

noname#97729
noname#97729
回答No.3

Excelファイルの比較なら、いろいろありますよ。 http://search.vector.co.jp/search?query=Excel+%94%E4%8Ar&path=

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんにちは。 マクロでは如何でしょうか。 以下のマクロをそれぞれ貼り付けた後、一旦ブックを保存し閉じてから、試してみてください。 変更されたセルのみ色(黄色)を設定します。 ----------------------------------------------------------------- 'マクロ貼付 (1) Alt+F11 (ツール → マクロ → Visual Basic Editor) →「挿入」→「標準モジュール」で表示される画面に貼り付け Public wBuf As Variant Public wR As Long Public wC As Integer ' Sub auto_open()   With Sheets("Sheet1")   '←データシート     wR = .Range("A" & Rows.Count).End(xlUp).Row   '←使用最大行数設定     wC = .UsedRange.Columns.Count         '←使用最大カラム数設定     wBuf = .Range(.Cells(1, 1), .Cells(wR, wC))   End With End Sub ----------------------------------------------------------------- 'ワークシートにマクロ貼付 (1) データシートをマウス右Click →「コードの表示」を選択で表示される画面に貼り付け Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Row > wR Or Target.Column > wC Then     Exit Sub   End If   With ActiveSheet     If Target.Value <> wBuf(Target.Row, Target.Column) Then       .Cells(Target.Row, Target.Column).Interior.ColorIndex = 6   '黄色設定     Else       .Cells(Target.Row, Target.Column).Interior.ColorIndex = xlNone '色取消     End If   End With End Sub

関連するQ&A

  • セルの値によって、入力可能なセルを動的に変更したい

    こんにちは。 Excelで、以下のような動作をしたいと考えています。 B列に入った値が'1'のときは、同じ行のC列・E列・H列にしか入力できないようにする。 B列に入った値が'2'のときは、同じ行のD列・F列・G列・H列にしか入力できないようにする。 (遷移できない列は、選択不可能とする) ある列に入力した値によって、動的にセルのロックを変更する・・・?というイメージなのですが、 具体的な実現方法がわかりません。 実現方法を教えていただけないでしょうか。 よろしくお願いします!!

  • C# DataGridView特定セルの入力フォーム変更について

    C# DataGridView特定セルの入力フォーム変更について C# DataGridViewについての質問です。 DataGridViewで1列目のコンボボックスを選択した値によって、その行のみ 2列目の入力フォームを変更したいのですが、その様なことは可能でしょうか? 例.1行目1列目コンボボックス「a」選択時、1行目2列目コンボボックス表示   2行目1列目コンボボックス「b」選択時、2行目2列目テキストボックス表示   3行目1列目コンボボックス「c」選択時、3行目2列目チェックボックス表示 列全体の入力フォームを変更する処理なら分かるのですが、特定のセルのみ変更する 方法が分かりません。 もし可能であれば実現方法も教えて頂けると非常に助かります。 宜しくお願いします。

  • Excel2003 2つのシートから相互にセルの値を変更したいのですが

    Excel2003を使用して2つのシートにあるセルの値を相互に変更できるようにしたいのですが。 例えば Sheet2 のセル A1 に =Sheet1!A1 と入力しておけば Sheet1 のセル A1 に 80 と入力すると Sheet2 のセル A1 は 80 と表示されますが,この状態で Sheet2 のセル A1 に別の値を入力すると,もう Sheet1 のセル A1の値を参照しなくなってしまいます。 そこで教えていただきたいことがあります。 Sheet1 のセル A1 に値(例えば80)を入力すると Sheet2 のセル A1 の値も同じ値(例えば80)になり,逆に Sheet2 のセル A1 に値(例えば80)を入力すると Sheet1 のセル A1 の値も同じ値(例えば80)になるように相互に値が変化できるようにしたいのです。 具体的に私がしたいことは (1) Sheet1 ~Sheet6 の A列 には同じ40人の名簿を使う。 (2) Sheet1 の B列 には国語の得点,同様に Sheet5 まで社会,数学,理科,英語の得点を入力。(本来は複数のテストの合計得点として, K列 にしたいのですが,今回は B列 ということでお願いします。) (3) Sheet1 ~ Sheet5 のセル D1 にそれぞれの教科の合格に必要な得点を入力。 (4) Sheet1 ~ Sheet5 の C列 には =if(B2>=D1,"○","×") のような数式を入力し,合格なら○,不合格なら×を表示するようにする。 (5) Sheet6 の B列 ~ F列 にはそのぞれの教科の○,×が参照されるようにし,B列 ~ F列の42行目にそれぞれの教科の合格に必要な点数が参照されるようにする。 (1)~(5)をすれば, Sheet1 ~ Sheet5 を見れば教科ごとの合格者が分かり, Sheet6 を見たときに誰がどの教科で合格か不合格か分かります。 Sheet6 の全教科の合格者数をみて,それぞれの教科の合格に必要な点数を上げたり,下げたりしたいのです。 Sheet1 ~ Sheet5 に戻れば,合格に必要な点数の上げ下げが可能なのですが, Sheet6の B列 ~ F列 の42行目でも合格に必要な点数の上げ下げをできるようにしたいのです。もちろん Sheet6 で合格に必要な点数を上げ下げしたときには, Sheet1 ~ Sheet5 の合格に必要な点数をも反映されるようにしたいのです。 長文で分かりにくいかもしれませんが,いい方法があれば教えてください。よろしくお願いします。

  • Excel VBA セルの値を変更後にVBA作動

    Excel VBAを活用して、特定のセルの値が変更されたときに、VBA処理を発動させることになりました。 処理といたしましては、C列(3列目)の4行目以下の空白セルに数値を入力するか、セルに入力されている数値を変更した場合にVBAを発動させたいです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 3 And Target.Row >= 4 Then MsgBox "セルの値が更新されました" End If End Sub 上記のコードを実行してみたところ、3列目(C列)の4行目を選択した段階でVBAが作動してしまいます。 セルの値変更後に作動するようにするには、どう修正すればよろしいでしょうか?

  • エクセルで、2つのセル値(2つの条件)から、別シートの表から該当する値を参照する方法

    シート(1)のA列とB列のセルに入力されている値を元に、 シート(2)の表を参照し、該当する値をシート(1)のC列に 表示させる方法があれば 教えて頂けると助かります。 なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、 シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表に なっております。 また、この列行タイトルの表記は「1から」または「1から9まで」 という範囲での表示になっています。 (例:シート(1)元データ) No| A列 | B列 | C列 | --------------------------------- 1 | 07  |  22  |  20 | ←C列は、シート(2)表を参照  2 | 18  |  15  |  30 |        3 | 01  |  09  |  05 |       4 | 21  |  03  |  30 |  5 | 30  |  28  |  35 |  (例:シート(2)参照する表) A列\B列 | 1~9| 10~19 | 20~29 | -----------------------------------   01~  | 05  |  10  |  20  |         05~  | 15  |  15  |  20  |           10~  | 20  |  25  |  30  |        15~  | 25  |  30  |  30  |    20~  | 30  |  35  |  35  |  現在、手作業でC列への入力を行っております。 何とか、作業効率を上げたいと思っておりますので、 ご指導下さいます様 宜しくお願い致します。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • エクセルのセルへの値の自動入力

    こんにちは。 エクセルへのセルへの値の自動入力の仕方が分からなくて困っています。 文章よりも、添付の画像を見て頂いた方が分かりやすいと思うのですが、 A2のセルへ、日付を自動で入力したいのですが、A2の行を右に検索して、 ○が見つかったら、その○が見つかった列の一番上の行にある値をA2のセルに 自動で反映されるようにしたいのです。 A2の行には、○の他に、×が入力されている場合もあるので、”○だったら” という判定が必要です。 始めは、目視で見ながら手入力しようと思っていたのですが、行数が数百ある上、 目視・手入力だと間違いが発生する可能性があるので、エクセルの関数などで 自動で入力したいです。 すみませんが、宜しくお願い致します。

  • 複数のエクセルデータ上特定位置の値を一つのセルに

    大量の同じフォーマットのエクセルファイル(Book1,Book2...)があり、それぞれのBookファイルの「NO.」シートのD6セルには番号が入っています。それぞれファイルでSheet1の特定のセル(例えばB4セル)の値を「データ」ファイルのSeet1にまとめたいです。「データ」ファイルのA列には「NO.」が入力されているので、Bookファイルの値はそれぞれ対応する番号の右側3番目のセルに移したいです。 いちいちコピーすることもできますが、あまりに量が多いので、VBAで簡単にできないかといろいろ試行錯誤してみましたが、うまくいかず悩んでいます。どなたか教えていただければと思いここで質問します。質問の意図がうまく伝わったかどうか不安ですが、よろしくお願いいたします。

  • エクセルVBAのコードの書き方を教えてください

    エクセルVBAの初心者です。 下記①-⑲のようなコードを書きたいのですが、どなたかお分かりになる方がいましたら、 ご教示いただけますと幸いです。 ① オートフィルターでシート[list]のA列に"●"がある特定の行だけを以下作業の対象にしたい ② ①で特定した行のE列セルの値を、シート[output]のB9セルにコピペする ③ ①で特定した行のF列セルの値を、シート[output]のB12セルにコピペする ④ ①で特定した行のG列セルの値を、シート[output]のB15セルにコピペする ⑤ ①で特定した行のH列セルの値を、シート[output]のB18セルにコピペする ⑥ ①で特定した行のI列セルの値を、シート[output]のB21セルにコピペする ⑦ ①で特定した行のJ列セルの値を、シート[output]のB24セルにコピペする ⑧ ①で特定した行のK列セルの値を、シート[output]のB27セルにコピペする ⑨ ①で特定した行のL列セルの値を、シート[output]のB30セルにコピペする ⑩ ①で特定した行のM列セルの値を、シート[output]のB33セルにコピペする ⑪ ①で特定した行のN列セルの値を、シート[output]のB36セルにコピペする ⑫ ①で特定した行のO列セルの値を、シート[output]のB39セルにコピペする ⑬ ①で特定した行のP列セルの値を、シート[output]のB42セルにコピペする ⑭ ①で特定した行のQ列セルの値を、シート[output]のB45セルにコピペする ⑮ ①で特定した行のR列セルの値を、シート[output]のB48セルにコピペする ⑯ ①で特定した行のS列セルの値を、シート[output]のB51セルにコピペする ⑰ ①で特定した行のT列セルの値を、シート[output]のB54セルにコピペする ⑱ ①で特定した行のU列セルの値を、シート[output]のB57セルにコピペする ⑲ シート[output]のB3:B59をテキストファイルを呼び出してコピペする ※このとき、上記②-⑱で記述したB9からB57のセルには改行が含まれる場合が  あるため、テキストファイルへのペースト時に""が表示されてしまうが、  もし可能であれば、この""が表示されないようにしたい。

  • Excel セルの値で行を選ぶ

    Excel セルの指定に関して質問です。 セルの値で列(行)を選択するにはどうするのでしょうか? 例えば B5に "3"が入っていたらC列(C4セル)、"4"が入っていたらD列(D4セル) を参照するというような具合に、ある特定のセルの値によって参照する列を変えたいのですが。 R1C1形式中にセルの参照をさせれば可能になりそうですが記述方法が分かりません。 よろしくお願いします。