Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19195 / 76734 ←次へ | 前へ→

【62975】Re:VBAでCSVを連結してをXLSで保存
発言  kanabun  - 09/9/28(月) 17:45 -

引用なし
パスワード
   ▼YUKI さん:

先ほどのコメントを、とりあえずコード化してみました。

Sub CSV結合してBookへ出力()
  Dim fs As Object, fd As FileDialog
  Dim fStr As String, fName As Variant, i As Integer
  Dim iz As Long

  '結合するCSVファイルの選択
  Set fd = Application.FileDialog(msoFileDialogFilePicker)
  With fd
    .AllowMultiSelect = True
    .Title = "データ選択(ファイル参照)"
    .Filters.Add "テキストファイル", "*.csv"
    If .Show = 0 Then Exit Sub
    If .SelectedItems.Count < 2 Then
      MsgBox "データを複数選んでください"
      Exit Sub
    End If
  End With
  
  'テキストの結合
  Set fs = CreateObject("Scripting.FileSystemObject")
  iz = fd.SelectedItems.Count
  For i = 1 To iz
    With fs.OpenTextFile(fd.SelectedItems(i), 1)
      fStr = fStr & .ReadAll
      .Close
    End With
  Next i
  '結合したテキストの出力
  fName = Replace(LCase(fd.SelectedItems(iz)), ".csv", "$.csv")
  With fs.CreateTextFile(fName)
    .Write fStr
    .Close
  End With
  
  '結合テキストをワークシートに読み込む
  Dim WS As Worksheet
  Set WS = Workbooks.Add(6).Worksheets(1)
  テキストファイルのインポート fName, WS
  
  fName = Application.GetSaveAsFilename( _
    InitialFileName:="ファイル.xls", _
    FileFilter:=",*.xls")
  If fName = False Then Exit Sub
  Application.EnableEvents = False
  ActiveWorkbook.SaveAs fName, FileFormat:=xlNormal
  Application.EnableEvents = True
End Sub

Sub テキストファイルのインポート(CSVname, ByVal WS As Worksheet)
 With WS
  With .QueryTables.Add(Connection:= _
    "TEXT;" & CSVname, Destination:=WS.Range("A1"))
    .Name = "foo"
    .FieldNames = True
    .AdjustColumnWidth = True
    .TextFilePlatform = 932
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    WS.Names(.Name).Delete
    .Delete
  End With
 End With
End Sub

3 hits

【62965】VBAでCSVを連結してをXLSで保存 YUKI 09/9/28(月) 0:52 質問
【62967】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/28(月) 9:02 発言
【62968】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/28(月) 9:37 発言
【62973】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/9/28(月) 15:37 発言
【62974】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/28(月) 16:55 発言
【62975】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/28(月) 17:45 発言
【62976】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/9/28(月) 18:35 お礼
【62977】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/28(月) 18:49 発言
【62978】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/9/28(月) 18:53 お礼
【62980】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/29(火) 0:11 発言
【62987】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/9/29(火) 18:53 お礼
【63004】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/9/30(水) 17:48 質問
【63006】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/30(水) 19:32 発言
【63007】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/30(水) 19:35 発言
【63008】Re:VBAでCSVを連結してをXLSで保存 kanabun 09/9/30(水) 19:52 発言
【63047】Re:VBAでCSVを連結してをXLSで保存 YUKI 09/10/4(日) 6:04 お礼

19195 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free