メニュー

セルに値と関数を代入
条件判断
ループ処理
エラー処理
エラーを無視する
エラーを意図的に発生させる
数字のフォーマット
文字を数値に変換
数値チェック(IsNumeric)
Trim処理
クラスの作成

配列のループ処理
動的配列 ReDim
Collectionの利用(配列数不明)
Rangeの範囲を配列に格納
Scripting.Dictionary
配列のソート

変数の宣言を強制する
変数の参照渡し、値渡し
ファイル、フォルダ選択ダイアログ
プログレスバーを表示する
所定のフォルダ配下にあるExcelを開く

月末日の取得
文字列の分割、抜き出し
重複行の削除
名前の定義を利用

データ抽出関係
SQLServerに接続
Accessに接続
Accessを最適化
Sqliteに接続
CSVファイルの読み込み
ADODBでCSVファイル読み込み
フィルターによるデータ抽出
ADOでMySQLに接続
ADODB.Streamでファイル読み込み
SQLServerにInsert文発行
バイナリファイルの入出力
Baspでバイナリファイルの入出力
Scripting.TextStreamでファイル読み込み

シートの操作
WorkSheetsとSheetsの違い
シートの選択
シートの追加
シートの最終行・列の取得
シートの存在チェック
シートの印刷方法
セルが変更された時の処理

ワークブックの操作
ワークブックを開いた時のイベント
他のワークブックの操作
ワークブックを閉じる

ユーザフォーム
ListBoxを表示・選択
フォームをモードレスで表示
シート上のコンボボックスの操作
コンボボックス選択で別なコンボボックスを変更
コントロールをマウスで移動
フォームの閉じるボタンの処理

ドライブ情報の取得
Basp21でメール送信
WSHを利用する
IEを利用@
OSとExcelのバージョン情報を取得
正規表現によるチェック
XmlHttpRequest送信

トップ
E-Mail
xml

ASP.Netのお勉強
ASP.Netで掲示板を作成しよう
VB.Netのお勉強
PHPのお勉強
AJAXのお勉強
Webデザインのお勉強
Javaのお勉強
連想書籍検索
世界の観光地検索
路線図
総合サイトCocoaLiz
ネイルサロン検索
エステサロン検索
アロマサロン検索
アイビューティーサロン検索

重複行の削除@Excel マクロ・VBA

複数の列がキー値となっている場合に、
重複している行を削除します。

Collectionを用います。
データの格納してあるシートに対して、
格納してある列文だけループ処理を行います。
コレクションに、行番号とKEY値を格納します。
KEY値は、KEYとなっている列の値を繋げたものです。

この場合、エラーを無視します。
重複してある行番号は、コレクションに格納されません。

取得したコレクションを新たにループし、
対象となる行を別シートにコピーします。

もっと早い方法もあると思います。


Dim i As Integer

Dim rowCol As Collection
Dim rowCount As Integer

'コレクション生成
Set rowCol = New Collection

'列1が空までループ
i = 1
Do While Sheets("CSV").Cells(i, 1) <> ""

    'エラーを無視
    '現在の行番号をKEY値で格納
    'KEY値は、列1,2,4であり、繋げる。
    On Error Resume Next
    rowCol.Add i, Sheets("CSV").Cells(i, 1).Value & Sheets("CSV").Cells(i, 2).Value & Sheets("CSV").Cells(i, 4).Value
    On Error GoTo 0

i = i + 1
Loop

'重複行を削除したデータを格納するシートを削除
Sheets("CSV2").Cells.Clear

'コレクションをループ
'重複がないデータを新たに生成
rowCount = 1
For Each tempRowCount In rowCol
    Sheets("CSV").Rows(CInt(tempRowCount)).Copy Sheets("CSV2").Rows(rowCount)
    rowCount = rowCount + 1
Next




Copyright (C) 2008 Excelマクロ・VBAのお勉強. All Rights Reserved.