こんにちは、Tです。
前回CSVファイルからExcelへ取り込む方法を書きましたが、あれを毎日の作業でやるとなると少し面倒です。
なので今回は(既にやられている方もいると思いますが)ボタン1つで取り込める、VBAマクロのコードを紹介したいと思います。
「”」(ダブルクォーテーション)付きにも対応していると思うので、(恐らく)正確に取り込めると思います…。
世に出回っている一般的なコードを使いやすいように自分でアレンジしてみました。
Sub CSVファイル読込みサンプル()
Dim vFName As Variant, WS As Variant
Dim intFree As Integer
Dim strSp() As String, stRec As String
Dim i As Integer, j As Integer
Dim Ys As Range
Dim Path As String
Set WS = CreateObject("Wscript.Shell")
Path = WS.SpecialFolders("Desktop") & "\"
ChDir Path
'ダイアログボックスでCSVファイル選択
vFName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _
Title:="CSVファイルの選択")
If vFName = False Then Exit Sub
Set Ys = ThisWorkbook.ActiveSheet.Cells
'Set Ys = ThisWorkbook.Sheets("シート名").Cells'他のシート用
Ys.Clear
intFree = FreeFile '空番号を取得
Open vFName For Input As #intFree 'CSVファィルを開く
i = 1
Do Until EOF(intFree)
Line Input #intFree, stRec '1行読み込み
strSp = Split(stRec, ",") 'カンマ区切りで配列へ
Range(Ys(i, 1), Ys(i, UBound(strSp) + 1)) = strSp '配列吐き出し
i = i + 1
Loop
Close #intFree
Ys.Replace what:="""", replacement:="" 'ダブルクォーテーション削除用
End sub
読み込んだCSVファイルはアクティブなシート(表示されているシート)に全て文字列として吐き出されます。
上記コードを、Excelを開いて一番左上にある「ファイル→オプション→リボンユーザーの設定→開発にチェック→OKクリック」でExcelに開発タブが表示されます。
Excelに戻って、開発→マクロ→マクロ名を入れて作成をクリック。
この画面になると思うので、Sub~End Subの間に上記コードをコピー&ペーストして保存すれば完了です。(コードのSub~End Subをはずしてください。)
使用するときは開発タブのマクロからになります。
※使用は自己責任で!
こんなこともできますよ!というお話です。
最後までお付き合いくださってありがとうございました。
(画像、コードが見づらかったら、ごめんなさい。)
少しでも皆様のお役に立てれば嬉しいです…。
また次も頑張ります!
↓ランキング参加中!クリックして頂ければ非常に喜びます♪