Excelでファイル名が同じで更新日付の異なる2つのファイルがあります。
この2つのファイルで内容が変わっている部分を知りたいのですが、良い方法はあるでしょうか?
(もしくは内容が変わっているかどうかだけでも知りたい)

比較が必要なファイルが大量にあるため、一つずつ見比べる時間が無く、困っています。

このQ&Aに関連する最新のQ&A

アンサープラス

当時はなかった機能かもしれませんが、Excel2013では「スプレッドシート検査」で違っている部分をセルごとに表示できるようです。



・スプレッドシート検査を使ってできること - Office のサポート
https://support.office.com/ja-jp/article/%E3%82% …

A 回答 (2件)

使ってないのでお勧めはわかりませんが、こちらのフリーソフトを試してみては?


http://search.vector.co.jp/search?query=excel+%9 …
    • good
    • 9

2つのブックの名前をそれぞれ uniballeye1.xls、uniballeye2.xls と仮定します。



新規ブック newbook.xls のセル A1 に式 =[uniballeye2.xls]Sheet1!A1=[uniballeye1.xls]Sheet1!A1 を入力して、このセルに次の[条件付き書式]を設定します。

“セルの値が” “次の値に等しい” “FALSE”
書式: パターン色を赤

セル A1 を右方向にズズーッと好きなだけ(例えばセル Z1 まで)コピーします。
範囲 A1:Z1 を下方向にズズーッと好きなだけコピーすると、真っ赤に燃えるようなセルが内容が異なる部分ということです。
    • good
    • 45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QExcelVBAについて質問致します 2つの同じファイル名のExcelファイルが 別々のファイルに有

ExcelVBAについて質問致します

2つの同じファイル名のExcelファイルが
別々のファイルに有り
仮に片方を①、もう片方を②、マクロを書き込むファイルを③とします
①②には一部分だけ違った内容が書き込まれています
書式、書き込みセル位置は全く同じです

②のファイルの中身を③に書き込み
(一部関数が有るので値のみ書き込み)
①と違う部分を赤く着色したいのですが上手く行きません

①のファイルは名前の変更が可能です
ファイル名には最後にインプットと有りますが
同じ名前の組み合わせが大量に有るので
起動時に2つのファイルを選択するか
開いている2つのファイルを対象にしたいです

事務所のpcでダウンロード等は出来ないので
フリーソフトではなくコードで教えて頂けないでしょうか
宜しくお願い致します

Aベストアンサー

大変お待たせいたしました。こんな感じではいかがでしょうか?
---------------------------------------------------------------------------
Sub ファイル比較()
Dim 比較元 As Variant
Dim 比較先 As Variant
Dim ファイル名 As String
Dim 行終 As Long
Dim 列終 As Long
Dim 行 As Long
Dim 列 As Long
Sheets(1).Select
Cells.Delete Shift:=xlUp
ChDir ThisWorkbook.Path
比較元 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較元のファイルを指定して下さい", , False)
If 比較元 = False Then Exit Sub
ChDir ThisWorkbook.Path
比較先 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較先のファイルを指定して下さい", , False)
If 比較先 = False Then Exit Sub
ChDir ThisWorkbook.Path
ファイル名 = Dir(比較先)
Workbooks.Open Filename:=比較先
Sheets(1).Select
Cells.Copy
ThisWorkbook.Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(ファイル名).Activate
ActiveWorkbook.Saved = True
ActiveWindow.Close
With ActiveSheet.UsedRange
行終 = .Rows(.Rows.Count).Row
列終 = .Columns(.Columns.Count).Column
End With
ファイル名 = Dir(比較元)
Workbooks.Open Filename:=比較元
Sheets(1).Select
With ActiveSheet.UsedRange
If 行終 < .Rows(.Rows.Count).Row Then 行終 = .Rows(.Rows.Count).Row
If 列終 < .Columns(.Columns.Count).Column Then 列終 = .Columns(.Columns.Count).Column
End With
Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)
For 行 = 1 To 行終
For 列 = 1 To 列終
If .Cells(行, 列).Value <> Cells(行, 列).Value Then
.Cells(行, 列).Interior.ColorIndex = 3
Else
.Cells(行, 列).Interior.ColorIndex = xlNone
End If
Next
Next
End With
Application.ScreenUpdating = True
ActiveWorkbook.Saved = True
ActiveWindow.Close
Range("A1").Select
End Sub
---------------------------------------------------------------------------
※ シート名は関係なく一番左側のシートで対応します。
※ ファイル名も同じで無くてもよく、簡単に選択できるようにしました。
※ 比較するファイルは、マクロのファイルが有るフォルダーのサブフォルダにおいた方がファイル指定が楽になります。
※ もしかしたら比較元と比較先が逆かも知れません。適当に直して下さい。

大変お待たせいたしました。こんな感じではいかがでしょうか?
---------------------------------------------------------------------------
Sub ファイル比較()
Dim 比較元 As Variant
Dim 比較先 As Variant
Dim ファイル名 As String
Dim 行終 As Long
Dim 列終 As Long
Dim 行 As Long
Dim 列 As Long
Sheets(1).Select
Cells.Delete Shift:=xlUp
ChDir ThisWorkbook.Path
比較元 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較元のファイルを指定して下さい", , False)
If...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセルで同じファイル名のファイルを別のファイル名で保存したい

エクセルで、社員に同じテンプレートのファイルに入力してもらい、それを集計するつもりです。集まったファイルは同じファイル名なので、別のファイル名としてフォルダに保存したいのですが、簡単にできる方法やフリーソフトはないでしょうか。

Aベストアンサー

メールの添付Book.xls(テンプレ)を開くと 集計Bookにシートを移動
準備
1.集計用のBookを作成(新規  集計.xls など)
2.Tool>マクロ>VisualBasicエディターを起動
3.ThisWorkBookに下記マクロを貼り付け
調整
1.テンプレ名 = "*" を実際のテンプレ名にする。
   *はワイルドカード 例 "*.xls" "*日報*.xls" 
2. Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")の
  セルをテンプレの送信者の名前のあるセルにする。
       例  ・・・.Range("B5")など
3.テンプレのシートが複数なら・・・別途
  
使いかた
1.集計用のBook(マクロ入り)を開く
2.メールの添付 テンプレ.xls を開く。

結果 自動で
 エクセルで開いたときに シート(名前+日付)として テンプレを取り込む。
 開いたテンプレは自動終了するので
 同じ名前のBook、テンプレは同時に開くことを回避。
 

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
テンプレ名 = "*" '*テンプラ.xls" '実際に併せて設定
If Workbooks(2).Name Like テンプレ名 Then

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False

On Error Resume Next
'メールの添付Book(テンプレ)を開くと 集計Bookにシートを移動
Workbooks(2).Sheets(1).Copy after:=Workbooks(1).Sheets(1)
Workbooks(2).Close
'送信者識別処理、重複防止処理、シート名変更処理
Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")
提出者名 = 名前のセル.Value '提出者名
シート名 = 提出者名 & Format(Now, "yymmdd") '名前+日付
Err = 0
If Workbooks(1).Sheets(シート名).Name = シート名 Then
'既にこの人のテンプレは読み込み済み:更新しない処理??
If Err = 0 Then Workbooks(1).Sheets(2).Delete
End If

If Err Then
'新しい読み込みシート
Workbooks(1).Sheets(2).Name = シート名
End If

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True

End If

End Sub

メールの添付Book.xls(テンプレ)を開くと 集計Bookにシートを移動
準備
1.集計用のBookを作成(新規  集計.xls など)
2.Tool>マクロ>VisualBasicエディターを起動
3.ThisWorkBookに下記マクロを貼り付け
調整
1.テンプレ名 = "*" を実際のテンプレ名にする。
   *はワイルドカード 例 "*.xls" "*日報*.xls" 
2. Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")の
  セルをテンプレの送信者の名前のあるセルにする。
       例  ・・・.Range("B5")など
3.テンプレのシ...続きを読む

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

QExcelのマクロでファイル情報の取得方法(更新日付情報付)

現在Excelのマクロで
「指定フォルダの中のファイルで指定日より前のファイルを自動削除する」
マクロを作成中なのですが、現在指定ディレクトリ内のファイル情報の取得の部分で困っています。

・dir() ではファイル名は取れるが(私の調べた限りでは)日付情報が取れない
・shellでdirコマンドを発行しようとすると、ディレクトリがロングファイルネームでひっかかってしまい、そのままではエラーになる。
例【shell("command.com /c dir c:\Documents and Settings > 結果.txt")】

といった状態です。
最悪ロングファイルネームをすべてDOSルールに変換してshellコマンドで発行するテもあるかと思いますが、略時に同じ名前が重ならないか(mydocu~1で良いのかmydocu~2になるのか)等で管理が煩雑になりそうです。

マクロ上でファイル名と最終更新日付を取得できる方法がご存知の方がいらっしゃいましたら教えてください。
尚、指定ディレクトリ名の取得~削除の実行、ログの作成あたりは殆ど出来上がっています。

現在Excelのマクロで
「指定フォルダの中のファイルで指定日より前のファイルを自動削除する」
マクロを作成中なのですが、現在指定ディレクトリ内のファイル情報の取得の部分で困っています。

・dir() ではファイル名は取れるが(私の調べた限りでは)日付情報が取れない
・shellでdirコマンドを発行しようとすると、ディレクトリがロングファイルネームでひっかかってしまい、そのままではエラーになる。
例【shell("command.com /c dir c:\Documents and Settings > 結果.txt")】

といった状態で...続きを読む

Aベストアンサー

こんにちは。

OS は、9x 系? 2k 系?なのでしょうか?この前もここで書いたばかりですが、Excel2003 + XP SP2 の組み合わせでは、FileSearch オブジェクトが、問題なく使えるようです。

それから、VBAの中にFileDateTime関数が用意されてされていますから、そのまま使えます。


サンプル:設定期日より以下のファイルを格納する

Sub DirDateCheckPrc()
Dim MyPath As String
Dim myFName As String
Dim myDirs() As Variant
Dim ChkDate As Date
Dim i As Long
Const ENDLINE As Date = #8/1/2006# '設定期日

MyPath = ThisWorkbook.Path & "\" 'パスセパレータはこちらのキメウチです

 myFName = Dir(MyPath & "*.txt")
 Do While myFName <> ""
  ChkDate = CDate(FileDateTime(MyPath & myFName))
  If DateDiff("d", ChkDate, ENDLINE) > 0 Then
  ReDim Preserve myDirs(1, i)
  myDirs(0, i) = myFName
   '日付を格納する必要がなければ、配列変数は必要ないです。そのまま削除(Kill)等の処理してください。
  myDirs(1, i) = FileDateTime(MyPath & myFName)
  i = i + 1
  End If
  myFName = Dir()
 Loop
End Sub

こんにちは。

OS は、9x 系? 2k 系?なのでしょうか?この前もここで書いたばかりですが、Excel2003 + XP SP2 の組み合わせでは、FileSearch オブジェクトが、問題なく使えるようです。

それから、VBAの中にFileDateTime関数が用意されてされていますから、そのまま使えます。


サンプル:設定期日より以下のファイルを格納する

Sub DirDateCheckPrc()
Dim MyPath As String
Dim myFName As String
Dim myDirs() As Variant
Dim ChkDate As Date
Dim i As Long
Const ENDLINE As Date = #...続きを読む

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QExcelで同じ商品名で、かつ日付が古いものを抽出する方法

ご存知の方、いらっしゃいましたらお願いします。
Excelは2003を使用しています。

複数の条件での抽出で名前が決まっているものは「フィルタオプションの設定」で行っていますが、日付が古いもの、新しいものの抽出方法がわかりません。
「同じ商品名」かつ「日付が古いもの」を抽出したいのですが、それが出来そうな関数、マクロはありますでしょうか。
当方マクロ知識は「マクロの記録」程度です。

A列  B列    C列
商品A 2007/12/01 10:00
商品B 2008/04/01 10:00
商品A 2008/05/01 10:00

現在は目視、手動で★印を別列につけ、それを抽出し削除しています。
削除フラグとして★印等をつけるようなものでも、わかれば嬉しいです。

Aベストアンサー

1.商品名を第1キー、日付を第2キーとして昇順に並び替えます。
2.D1に1を入力し、D2からは=IF(A1=A2,0,1)を入力して下方向へコピー

これでD列の「1」のみ抽出して削除します。

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QとあるExcelファイルを開くと、勝手に同じファイルが2つ開いてしまう

OSはXPで、Excelのバージョンは2003です。

例えば「abc01」というExcelファイルがあるとします。
それをダブルクリックして開くと、同じファイルが2つ開いてしまいます。
(今までそんな事はありませんでした。今日初めてそうなりました。)

と言っても、全く同じ名前のファイルは開けませんので、
「abc01.1」「abc01.2」という名前も勝手に付けられて開きます。
それを閉じると、デスクトップにはやっぱり「abc01」というファイルしかありません。

なぜこんな現象が起きるのでしょうか・・・?
試しに他のExcelファイルを2~3個開いてみましたが、
そんな事は起きませんでした。

例えば「abc01.1」の方でsheet2を表示して、
「abc01.2」の方を見てみるとsheet1のままだったりするので、
連動(?)はしていないようです。
あと「abc01.1」の方をちょっと編集して一旦両方閉じて、
また開くとちゃんと両方編集されていました。
「abc01.1」を編集→上書き保存の時点で「abc01.2」がどうなっているかは見ていません。

職場のパソコンで起きた事で、
今は家から投稿しているので上記の状況以外は書けませんが、
どなたか原因が分かる方、よろしくお願いいたします。
(もしかして明日には普通になっているかも知れませんが・・・)

※次に職場のパソコンを開くのは明日の夜になりますので、
 補足・その後の報告・お礼などは遅くなってしまいます。

OSはXPで、Excelのバージョンは2003です。

例えば「abc01」というExcelファイルがあるとします。
それをダブルクリックして開くと、同じファイルが2つ開いてしまいます。
(今までそんな事はありませんでした。今日初めてそうなりました。)

と言っても、全く同じ名前のファイルは開けませんので、
「abc01.1」「abc01.2」という名前も勝手に付けられて開きます。
それを閉じると、デスクトップにはやっぱり「abc01」というファイルしかありません。

なぜこんな現象が起きるのでしょうか・・・?
...続きを読む

Aベストアンサー

http://oshiete1.goo.ne.jp/qa3816162.html

たぶん、↑と同じ現象です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報