Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2010)
配列からcsvに書き込みは可能なのでしょうか?
投稿日時: 21/03/17 11:28:25
投稿者: miso
メールを送信

1枚のcsvから行数を指定して分割し、新たなcsvファイルを作成したいのですが、
以下はまだ完成しておらず、とりあえず200行あるcsvから50行を抜き出して1枚のcsvを作成する所までです。
 
以下の内容
B1セルに【申請情報】の値
B3セルに【50】指定行数
分割したcsvの1行目は分割前のcsvの1行目のカラム【tmp1(0)】を使用したいです。
 

Sub 本部取込()
    Dim buf As String, import_FN As String, export_FN As String, tmp3 As String
    Dim tmp1 As Variant, tmp2 As Variant, title As Variant
    Dim gyo As Long, i As Long, j As Long, Fnum As Long
    
    '取り込みcsvファイル名・行数取得
    ThisWorkbook.Worksheets(1).Activate
        import_FN = Range("B1").Value
        gyo = Range("B3").Value
    
    'csvファイル取込
    OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.csv", , import_FN & "ファイルを選択して下さい")
        With CreateObject("ADODB.Stream")
          .Charset = "UTF-8"
          .Open
          .LoadFromFile OpenFileName
          buf = .ReadText
          .Close
        End With
        
    '行ごとにtmp1配列に分割
    tmp1 = Split(buf, vbLf)
        
    'csv切り分け
    ReDim tmp2(gyo + 1)
        tmp2(0) = tmp1(0) & vbLf
    For i = 1 To gyo + 1
        tmp2(i) = tmp1(i) & vbLf
    Next i
    Fnum = Fnum + 1
    
    'csv保存
    export_pass = Replace(OpenFileName, Dir(OpenFileName), "")
        export_FN = export_pass & Format(i, "00") & "_申請情報ファイル_" & imprt_FN & "_" & i - 1 & "件_" & Format(Date, "yyyymmdd") & ".csv"
           With CreateObject("ADODB.Stream")
               .Charset = "UTF-8"
               .Open
               .LoadFromFile tmp2
               '.WriteText tmp2
               .SaveToFile export_FN, 2
               .Close
           End With
End Sub

回答
投稿日時: 21/03/17 12:26:22
投稿者: WinArrow
投稿者のウェブサイトに移動

質問は
> '.WriteText tmp2
 
このコードの
配列:tmp2を単純文字列にしたい
ということでしょうか?
 
 
.WriteText Join(tmp2)
 
が使えるかな?
 

投稿日時: 21/03/17 13:41:49
投稿者: miso
メールを送信

WinArrowさん、
ご返答感謝致します。
 
そうです!これがしたかったのです!!!
Joinが使えるんですね!勉強になりました、ありがとうございます。
本件クローズ致します。