CSV(タブ区切り)→excel形式に変更するマクロと重複行を削除するマクロ

前回マージしたCSV(GMO FXのヒストリカルデータ)をxlsxに変更して、ダブリがある行を削除するマクロを作りましたので、もしよかったら使ってください。

CSVをxlsx形式にするマクロ

最初に言っておくと、カンマ区切りのCSVの場合、手動でCSVをエクセルで開いて、xlsx形式にて保存すれば変換できるので、このVBAはあまり役に立たないです。

マクロのループ処理の勉強用みたいなものです。

手動でのやり方

エクセルのファイルのコピーの保存、拡張子のところのタプをExcelブック(*.xlsx)に変更して保存。エクセル2016だと外部フォルダOneDriveがデフォルトの保存先になっているので、画面右側にあるこのPCを選択して、ファイルの名前入力欄のこのPCの↑を押してあげると保存先が変更できます。

最初2016にバージョンアップした時まじで戸惑いました。Microsoftさんかんべんしてください、そんなにOnedrive使わせたいんですか。。。

コード引用

説明

このマクロと対象ファイルは同じフォルダに保存してください。加工対象ファイルはmerge.csvの名称に設定しています。

重複行を削除するVBA(マクロ)

前回マージしたCSVにはタイトル行が重複してしまう欠点があったが、重複を取り除くVBAを作りました。シンプルなマクロです。RemoveDuplicates コマンドを使用しています。このコマンドはエクセル2007年以降で動作するうメソッドです。

手動で重複行を取り除く方法

(やり方1)

1行目を選択してあげて、データタブより「並び替えとフィルター」のフィルタボタンを押す。そうするとフィルタがかかるので、始値等のフィルタをクリック、全て選択解除(すべて選択のところのクリックを外すと全解除になります)して、最終のところで始値のみをクリックしてあげるとダブったタイトル行のみがフィルタされます。ここで行を全選択してデリート。そうすると重複行は消えます。

(やり方2)

データタブより「データツール」重複の削除より選択範囲を拡張するを選び、先頭行をデータの見出しとして使用するにチェックが貼っていることを確認して、OKをクリック。

やり方2のほうが簡単かな

コード引用

 

説明

 

VBAのワークブックのシート1を対象にVBAが実行されます。

関連記事