忍者ブログ

EXCEL VBAで あくせく

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


重複するデータ行の削除

EXCEL表にキーとなるコードを入力していくと、コードの重複に気づかない
場合があります。この処理はデータに重複がある場合は、重複行を見つけ削除
する処理です。
この処理では、重複行を見つけると無条件に削除してしまいますので、
株価情報検索処理の銘柄登録には向いていますが、データベースの様な
個々のデータ行が重要な意味を持つ処理には向いていません。
ここでは1列1行目から比較を開始して、2行目以降100行目までに、
データの重複があった場合に、比較行より先にある行の削除を行います。
重複する行が点在して複数回出現しても、連続したデータとなっていても
かまいません。
行削除には、.EntireRow.Deleteコマンドを使用します。
途中に空白行があれば、その空白行以降の空白行は削除されます。

Private Sub sample()
Dim wRow       As Integer
Dim cRow       As Integer
Dim sRow       As Integer
Dim cKazu      As Integer

    wRow = 1
    sRow = 100
 For cKazu = 1 To sRow
     cRow = wRow + 1
   Do Until cRow > sRow
     If Cells(wRow, 1) = Cells(cRow, 1) Then
        Cells(cRow, 1).EntireRow.Delete
        cRow = cRow - 1
     End If
        cRow = cRow + 1
   Loop
    wRow = wRow + 1
 Next
End Sub




 

拍手[0回]

PR

重複行の削除処理

表作成の場合、キーとなるコードに重複がある場合は、2行重複した
 行を見つけ削除する処理です。
キーとなるコードが2行連続している場合に、削除する事が可能です。
ここでは、1行目1列から100行目までのキーとなるコードの
連続した2行に重複があった場合に、先にある行の削除を行います。
行削除には、.EntireRow.Deleteコマンドを使用します。

Private Sub sample()
Dim wRow       As Integer
Dim cKazu      As Integer

  wRow = 1
  For cKazu =  1 to 100
    If Cells(wRow, 1) = Cells(wRow + 1, 1) Then
       Cells(wRow + 1, 1).EntireRow.Delete
    End If
    wRow = wRow + 1
  Next

End Sub


 

拍手[0回]


Timer 関数

処理時間の測定にTimer関数を使用します。
Timer関数は、午前0時から経過した秒数を表す単精度浮動小数点数型の
値を返しますので計測対象の前後に入れて掛かった時間を計測します。
指定のしかたはこの様にします。 

  Timer 関数
構文   Timer
引数  なし

Private Sub Sample  ()
Dim StTim  As  String
Dim EdTim  As  String
StTim = Timer
---計測対象処理---
EdTim = Timer
Msgbox "処理時間は、" & EdTim - StTim & "秒です。"
End Sub

 

拍手[0回]