セル値の変更をリストアップする方法

このQ&Aのポイント
  • データベース上書きのために、入力された値と既存のデータの差分を抽出する方法を説明します。
  • エクセルデータを全読み込みするのではなく、差分データのみを読み込むことで処理時間を短縮できます。
  • B列のセルの変更があった場合、同じ行のA列の値を他のブックに記録するか、同じ形式で保存する方法を検討しています。
回答を見る
  • ベストアンサー

セル値に変更のあった行を他のブックにリストアップする。

データベース上書きのため、値が入力され、既存のデータと変更のあった行だけを抽出したいと思います。データベースはサーバに保存され、エクセルデータを全読み込みする形式でデータベースを更新しています。データが20000行に及ぶ為、読み込みに時間がかかります。そこで、差分データだけの読み込みを行いたいと思います。 B列のセルに数値を入力していますので、B列が変更された行だけ差分データとして更新しようとしています。そのセルのA列にはそれぞれ固有のコード番号をふっています。 B列セルに変更があった場合に、同じ行のA列セルの値を他ブックに記録するか、もしくはその行をまったく同じ形式で他ブックに保存出来ませんか?

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

  • ベストアンサー
  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

> B列セルに変更があった場合に、・・・ と言う動作を検出するのには Worksheet_Change(ByVal Target As Range) というイベントが用意されています。 Worksheet_Changeで検索すれば使い方が分かると思います。

utamaro-j
質問者

お礼

VBAは使った事がないのですが、良い機会なので教えていただいたキーワードを元に勉強したいと思います。ありがとうございました。

関連するQ&A

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • -excel-違うブックの文字列を含む行の抽出

    商品の価格を一括で変更できる方法を探しているのですが見つからず困っています。 全ての商品データが載ってるブックAがあります。価格を変更する商品のIDと値下げ後の値段が載っているブックBがあります。ブックAの商品価格をブックBの値下げ後価格に変更したいのですが、関数か、マクロなど何か良い方法はないでしょうか? 最悪価格は手動で変更するとしてせめてブックBのIDと合致するセルを持つブックAの行を抽出する方法はないでしょうか?抽出した行は別ブックにまとめてくれるとなお助かります。 ちなみにブックAには7000行、ブックBには1000行のデータがあります。 ブックA(商品データ) A列・・・・・・    F列・・・・・・・・ ID         価格 1234        2500 2345        3200 3456        1200 4567        3000 5678        1800 ブックB(価格変更データ) A列        B列 ID         価格 2345        2600 5678        1500 ↓ ブックA(商品データ)もしくは新規ブックC A列・・・・・・    F列・・・・・・・・ ID          価格 1234        2500 2345        2600 3456        1200 4567        3000 5678        1500 といった感じです。どなたかお知恵をお貸しください。よろしくお願いいたします。

  • 2つのブックで、1レコードの3列の値が同じ行のセル選択するには?

    2つのブックで、1レコードの3列の値が同じ行のセル選択するには? Windows XP Home Edition Office XP Personal 2002 Excel 2002 画像のように、 左.xls のB5(赤色セル)を選択したら  右.xls のB10(B9ではありません)を選択させたいのですが、 うまく行きません。 左右のブックの赤色セルの各行番号は同じではありません。 1レコードの「 B列 と C列 と D列 」の「3列の値が同じ行のセル」を選択したいのです。 この行は、必ず1つしかありません。 しかし「 B列 と C列 」「 B列 と D列 」などの「2列の値が同じ行のセル」は複数あります。 また、 左.xls のB6(青色セル)を選択した場合は、  右.xls のB12(B11ではありません)を選択させたいのです。 B列( 日付、実際には西暦 2010/05/05 です )だけは、全く同じデータとなっております。 ●2つのブックを左右に並べて、  同じ行データを閲覧したいわけでございます。 下記コードは、B列だけしか参照できません。 ややこしくて、恐れ入りますが、 何卒、ご教示のほどをお願い致します。 Sub TEST() Const wBook = "右.xls" '表示させたいBook名 Const wSht = "Sheet1" '表示させたいSheet名 Dim Target As Range Dim TargetVa As Integer TargetVa = ActiveWindow.ActiveCell.Value With Workbooks(wBook).Sheets(wSht)   For Each Target In .Range("B1", .Range("B65536").End(xlUp))    If Target.Value = TargetVa Then     Workbooks(wBook).Activate     Sheets(wSht).Activate     Target.Cells.Select    End If   Next Target  End With End Sub

  • Excelの複数の行番号の指定したセルを他のシートの

    特定のセルに表示させる方法はありますか? これだけではわかりづらいと思いますので…。 例えば、Book1のシート1のセルB3からD3をシート2のセルC4F6K6に表示(同じセルではない)させ、このシートを他の新しいブック(Book2)として保存(これは印刷するので無理なら必ずしも保存出来なくても良い)し、Book1のシート1のセルB3からD3に入力したデータはそのまま(変更しない)で、次に次の行のB4からD4をBook1のシート2のセルC4F6K6に表示させ、またこのシートを他の新しいブック(Book3)として保存する、というような作業を繰り返したいのです。 要するにBook1のシート1の行の上から下へ順番にデータを入力していき、常にシート2の特定セルにシート1の最新データが表示されるようにしたい、ということです。 要領はわかっていただけたでしょうか? よろしくお願いします。

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

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

  • エクセルで他のBookのデータを入力規則のリストに…

    エクセル(Excel2002)の入力規則についての質問です。 仮にBook1のsheet1のA列1~10行に元の値となるデータを作成し,これに「データ」と名前をつけます。 このデータをBook1とは異なるBook2のA列1行において入力規則の元のデータに設定しドロップダウンリストから選択することは可能でしょうか? Book1とBook2は同一フォルダにあります。 ご教示ください。

  • エクセル ブック内のシート間での行の参照?

    エクセルの同じブック内のシート間で、セルを参照するのではなく、行参照?させたいのですが・・・。 例えば、、  シート1    A    B    C    D     1行目 りんご みかん いちご ぶどう     2行目 赤    オレンジ  赤   紫 と入力すると同じようにシート2にも入力されるようにしたいのと、1行目と2行目の間に行を挿入しても同じようにシート2にも挿入されたり、 さらにはA列・B列のみ入力されたりするようにしたいのですが、(C列D列には別々のデータを入力したい)どのような方法がありますでしょうか?説明がわかりにくく申し訳ないのですが、宜しくお願いします。

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

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

  • 2つのブックで、1レコードの2列の値が同じ行のセル選択するには?

    2つのブックで、1レコードの2列の値が同じ行のセル選択するには? Windows XP Home Edition Office XP Personal 2002 Excel 2002 画像のように、左.xls 右.xls 共に、 1レコードの 「 B列 と C列 」 の値が同じ行のセルを選択したいのですが、 うまく行きません。 画像の例では赤色セルの部分です。 左右のブックの赤色セルの各行番号は同じではありません。 B列(日付、実際には西暦です)だけは、全く同じデータとなっております。 ●2つのブックを左右に並べて、  同じ行データを閲覧したいわけでございます。 何卒、ご教示のほどをお願い致します。 Sub TEST() Const wBook = "右.xls" '表示させたいBook名 Const wSht = "Sheet1" '表示させたいSheet名 Dim Target As Range Dim TargetVa As Integer TargetVa = ActiveWindow.ActiveCell.Value With Workbooks(wBook).Sheets(wSht)   For Each Target In .Range("B1", .Range("B65536").End(xlUp))    If Target.Value = TargetVa Then     Workbooks(wBook).Activate     Sheets(wSht).Activate     Target.Cells.Select    End If   Next Target  End With End Sub

  • 他のブックファイルのセルの参照が上手く行きません

    こんにちはよろしくお願いいたします。 エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。 しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となっています。式は,キーボードを使って変更しました。もちろん,(Book3.xls)は,(Book2.xls)と同様のシート形式をもち,データも入力されています。 このような状態になると,先に挙げたように,”=”を入力して参照するブックファイル(Book3.xls)のセルをクリックしても,ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となったままで,(Book3.xls)のデータは表示されません。 (Book2.xls)と(Book3.xls)のセルのデータは,文字列です。 気になるのは,(Book1.xlsx)はoffice2010で作成されたファイルであること,(Book2.xls)と(Book3.xls)は,互換モードと表示されるファイルであること,また表示されているファイルを見ると,フルパスで参照している点です。「 ='C:\aaa\bbb\・・・・・[Book3]Sheet1'!$A$1 」という参照式になっています。3つのファイルはすべて同一ファイルに入っています。 何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

専門家に質問してみよう