EXCEL超初心者マクロ(5)-追加でcsvを取り込みたいとき-
以前csv取り込みのサンプルをUPしましたが、今回はcsvを追加で取込むマクロを紹介します。
複数のcsvファイルを取込むときに使えると思います。
取込む位置を決めて、そこに追加していくやりかたです。
【条件】基準項目は必ず存在する。
以下マクロの内容です。
MSG_FLG = MsgBox("サンプルファイル" & vbCrLf & "★追加 取込み処理実行OK?", vbYesNo)
If MSG_FLG = vbNo Then
   Exit Sub
End If
Const cnsTITLE = "○SAMPLEデータ、取込み処理"
Const cnsFILTER = "SAMPLE csvファイル (*.csv),*.csv"
' ***対象シートセット***
'
Dim vFILENAME As Variant ' OPENするファイル名(フルパス)
With CreateObject("WScript.Shell")
.CurrentDirectory = Worksheets("KANRI").Range("B2")
End With
Sheets("DATA").Select
Range("A1").Select
If Worksheets("DATA").Range("A1") = "" Then
   '### 新規(空のとき) ****
   Application.StatusBar = "初回"
   WK_START01 = "A1"
Else
   '### 追加とき ****
   MAXLOW1 = Cells(Rows.Count, 1).End(xlUp).Row
   ’対象列(この場合1列目)の一番下の位置を取得します。
   Set set_data01 = Worksheets("DATA").Range("A1")
   '...取込むシートのA1をセット
   Set set_data01 = set_data01.Offset(MAXLOW1, 0)
   '...A1からMAXLOW1分だけ下に移動
   WK_START01 = set_data01.Address(RowAbsolute:=False, ColumnAbsolute:=False)
   '...今いる位置をWK_START01へセット...AAA
End If
MsgBox ("取り込み位置: " & WK_START01)
vFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, title:=cnsTITLE)
If VarType(vFILENAME) = vbBoolean Then
   MsgBox ("キャンセル")
   Exit Sub
End If
With ActiveSheet.QueryTables.Add(Connection:= "TEXT;" & vFILENAME, Destination:=ActiveSheet.Range(WK_START01))
’...AAAの位置から追加(以下通常取込みと一緒)
''...省略...
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A1").Select
MSG_FLG = MsgBox("取り込み終了" & vbCrLf & vbCrLf & "(^^)")
Application.StatusBar = "追加 取込み終了"








![[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。] [商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]](https://hbb.afl.rakuten.co.jp/hgb/17d6d998.a7c60c45.17d6d999.0f382150/?me_id=1313634&item_id=10000106&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbell-hammer-shop%2Fcabinet%2F04483050%2Flsbhg%2Fimgrc0073910752.jpg%3F_ex%3D240x240&s=240x240&t=picttext)





ディスカッション
コメント一覧
まだ、コメントがありません