[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
[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
表作成の場合、キーとなるコードに重複がある場合は、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
処理時間の測定に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