
エクセルで2つのファイルを差分して、追加・削除されたそれぞれのファイルのデータセルを色で塗る。変更のないものは元ファイルから新ファイルへセル内容をコピーするというVBAは可能でしょうか?
例)元ファイル、新ファイルにおいてA列を差分。
元ファイル 新ファイル
A B A B
1 aa1 bb1 aa1
2 aa2 bb2 aa3
3 aa3 bb3 aaA
4 aa4 bb4 aa4
とあるとします。
追加>新ファイルのA3セルを塗る。
削除>元ファイルのA2セルを塗る。
変更なし>新ファイルのB1、B2、B4へ元ファイルのB1、B3、B4のデータをコピペ。
元ファイル 新ファイル
A B A B
1 aa1 bb1 aa1 bb1
2 aa2 bb2 aa3 bb3
3 aa3 bb3 aaA
4 aa4 bb4 aa4 bb4
このような感じです。
どうぞよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
質問者はデータベースとかプログラムとかを考えたことが無いのであろう、こともなげに差分とか言うが、両者の行(レコード)および項目(列)を結びつけるれこーどのキーのようなものが、両方に存在しないとそもそもこの議論ができないのに気づいていない。
私の言うことを良く考えてみてください。この回答への補足
すいません。差分という言い方がまずかったでしょうか。
下記を元に作業用シートを作らず、更新前、更新後のシート上で処理が出来ればと悩んでいます。
Sub Sabun()
Dim myRB As Long '更新前データを操作する行番号
Dim myRA As Long '更新後データを操作する行番号
Dim myDel As Boolean '削除を判断するフラグ変数
Dim myAdd As Boolean '追加を判断するフラグ変数
'作業用シートのデータを消去
Worksheets("作業用").Cells.Delete
'作業用シートに更新前後の2つの表をコピー
Worksheets("更新前").Range("A1").CurrentRegion.Copy Destination:= _
Worksheets("作業用").Range("A1")
Worksheets("更新後").Range("A1").CurrentRegion.Copy Destination:= _
Worksheets("作業用").Range("F1")
'作業用シートを選択
Worksheets("作業用").Select
'表の列幅を自動調整
Columns("A:I").AutoFit
'更新後削除されたデータをチェック
myRB = 2
Do Until Cells(myRB, 2).Value = ""
myDel = True
myRA = 2
Do Until Cells(myRA, 7).Value = ""
If Cells(myRB, 2).Value = Cells(myRA, 7).Value Then
myDel = False
Exit Do
End If
myRA = myRA + 1
Loop
If myDel = True Then
Cells(myRB, 2).Interior.ColorIndex = 37
End If
myRB = myRB + 1
Loop
'更新後追加されたデータをチェック
myRA = 2
Do Until Cells(myRA, 7).Value = ""
myAdd = True
myRB = 2
Do Until Cells(myRB, 2).Value = ""
If Cells(myRB, 2).Value = Cells(myRA, 7).Value Then
myAdd = False
Exit Do
End If
myRB = myRB + 1
Loop
If myAdd = True Then
Cells(myRA, 7).Interior.ColorIndex = 37
End If
myRA = myRA + 1
Loop
End Sub
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) 複数の同じ様式のエクセルデータの任意セルへの入力について 3 2022/04/27 15:00
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VScodeでjarファイルを開く方法
-
音声がoggのAVIファイルをDVDフ...
-
windows2000で、hostsファイル...
-
デスクトップに勝手にファイル...
-
Windows95からのカードファイル...
-
Linuxでのフォルダ名の意味(/et...
-
クッキーと言うのは何処に・・...
-
macのdmgファイル(動画)をMP4...
-
mrl→midファイルへ
-
mac ファイルの詳細情報を編集...
-
DATファイル
-
拡張子という名前の由来について
-
onedriveの中身を削除したらパ...
-
ファイル中身をコマンドで一気...
-
MP3プレーヤーでの曲順
-
sendmailの空き容量不足について
-
itunesのプレイリストを一括で...
-
ファイル削除
-
Windows7とwindowsXP
-
OSXで使えるバイナリエディタ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
教えてください!困ってます。
-
emlをtxtに変換するには?
-
onedriveの中身を削除したらパ...
-
同期センターのマークが出てま...
-
コマンドプロンプトによるフォ...
-
ファイルの先頭行を全て削除したい
-
mrl→midファイルへ
-
外字ファイル、eudc.tte と e...
-
バッチファイルで変数の中身を...
-
office365 ファイルを削除したい
-
Windows10 フォルダ内の自動並...
-
ファイルの単位
-
ショートカットアイコンと、元...
-
VScodeでjarファイルを開く方法
-
macのdmgファイル(動画)をMP4...
-
バッチファイルからタスクスケ...
-
フォルダ内の一覧を印刷するには?
-
mac ファイルの詳細情報を編集...
-
Excellにて→ファイルエラー:デ...
おすすめ情報