Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8297 / 13646 ツリー ←次へ | 前へ→

【34142】シート1とシート2の内容が同一かチェッ... カド 06/1/27(金) 11:30 質問[未読]
【34144】Re:シート1とシート2の内容が同一かチェッ... Statis 06/1/27(金) 11:52 回答[未読]
【34157】Re:シート1とシート2の内容が同一かチェッ... カド 06/1/27(金) 14:41 お礼[未読]

【34142】シート1とシート2の内容が同一かチェッ...
質問  カド  - 06/1/27(金) 11:30 -

引用なし
パスワード
   シート1とシート2の内容が同一かチェックして、
同一であればシート2は削除したいのです。

このような場合、セルのひとつひとつが同一内容かどうかを
チェックするしか方法が無いのでしょうか?
それとも何か良い手段がありますか?

もし、ひとつひとつチェックするとすると、
データが入っている一番右のセルと一番下のセルが
どこかくらいは判っていると都合が良いと思うのですが、
これを見つけ出す良い方法はあるのでしょうか?

【34144】Re:シート1とシート2の内容が同一かチェ...
回答  Statis  - 06/1/27(金) 11:52 -

引用なし
パスワード
   こんにちは

参考までに。

Sub Test_1()
Dim R As Range, R1 As Range, C As Range, Ch As Boolean
Ch = True
   Set R = Worksheets("Sheet1").Cells.SpecialCells(xlCellTypeConstants)
   Set R1 = Worksheets("Sheet2").Cells.SpecialCells(xlCellTypeConstants)
   If R.Count <> R1.Count Then
    Ch = False
    GoSub End_Len
   End If
   For Each C In R
     If C.Value <> Worksheets("Sheet2").Range(C.Address).Value Then
      Ch = False
      GoSub End_Len
     End If
   Next C

End_Len:
If Ch = False Then
  Application.DisplayAlerts = False
  Worksheets("Sheet2").Delete
  Application.DisplayAlerts = True
End If
Set R = Nothing: Set R1 = Nothing
End Sub

【34157】Re:シート1とシート2の内容が同一かチェ...
お礼  カド  - 06/1/27(金) 14:41 -

引用なし
パスワード
   ▼Statis さん:
こんにちは 回答ありがとうございます。

早速実行してみましたが、あれれ?? 何も起きないぞ???
以下のように一部修正して無事解決しました。

やはり、ちゃんと便利なものがあるのですね。
助かりました。
 

>End_Len:
> If Ch = False Then     ← If Ch = True Then に変更

>  Application.DisplayAlerts = False
>  Worksheets("Sheet2").Delete
>  Application.DisplayAlerts = True
> End If
> Set R = Nothing: Set R1 = Nothing
>End Sub

8297 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free