zoukankan      html  css  js  c++  java
  • 【Excel】输出CSV文本

    '*******************************************************************************
    '   CSV形式テキストファイル書き出すサンプル(FSO)
    '
    '   作成者:井上治  URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
    '*******************************************************************************
    ' [参照設定]
    '   ・Microsoft Scripting Runtime
    '*******************************************************************************
    Option Explicit
    
    '*******************************************************************************
    ' CSV形式テキストファイル書き出すサンプル③(FSO)
    ' 参照設定:Microsoft Scripting Runtime
    '*******************************************************************************
    Sub WRITE_CSVFile3()
        Const cnsFILENAME = "SAMPLE.csv"
        Dim FSO As New FileSystemObject         ' FileSystemObject
        Dim TS As TextStream                    ' TextStream
        Dim GYO As Long                         ' 収容するセルの行
        Dim GYOMAX As Long                      ' データが収容された最終行
    
        ' 最終行の取得
        With ActiveSheet
            If .FilterMode Then .ShowAllData
        End With
        GYOMAX = Range("A65536").End(xlUp).Row
        ' 指定ファイルをOPEN(出力モード)
        Set TS = FSO.CreateTextFile(Filename:=ThisWorkbook.Path & cnsFILENAME, _
                                    Overwrite:=True)
        ' 2行目から開始
        GYO = 2
        ' 最終行まで繰り返す
        Do Until GYO > GYOMAX
            ' レコードを出力(REC編集処理より受け取る)
            TS.WriteLine FP_EDIT_CSVREC(GYO, 1, 5)
            ' 行を加算
            GYO = GYO + 1
        Loop
        ' 指定ファイルをCLOSE
        TS.Close
        Set TS = Nothing
        Set FSO = Nothing
    End Sub
    
    '*******************************************************************************
    ' CSV形式テキストの1レコードの編集処理
    '*******************************************************************************
    Private Function FP_EDIT_CSVREC(GYO As Long, _
                                    STRCOL As Long, _
                                    ENDCOL As Long) As String
        Dim strREC As String
        Dim COL As Long
    
        ' 先頭カラムの編集
        strREC = FP_EDIT_COLUMN(GYO, STRCOL)
        ' 2番目以降のカラムの編集
        For COL = STRCOL + 1 To ENDCOL
            strREC = strREC & "," & FP_EDIT_COLUMN(GYO, COL)
        Next COL
        ' 編集したレコード内容を戻り値にセット
        FP_EDIT_CSVREC = strREC
    End Function
    
    '*******************************************************************************
    ' 1カラム分の編集処理
    '*******************************************************************************
    Private Function FP_EDIT_COLUMN(GYO As Long, COL As Long) As String
        Dim strTEXT As String
    
        strTEXT = Trim(Cells(GYO, COL).Value)
        If IsDate(strTEXT) Then
            FP_EDIT_COLUMN = "#" & strTEXT & "#"        ' 日付
        ElseIf IsNumeric(strTEXT) = True Then
            FP_EDIT_COLUMN = CStr(CDbl(strTEXT))        ' 数値
        Else
            FP_EDIT_COLUMN = """" & strTEXT & """"      ' その他(文字列)
        End If
    End Function
    
    '-----------------------------<< End of Source >>-------------------------------
  • 相关阅读:
    HRBUST 1819 石子合并问题--圆形版
    Linux 用户信息英文解释
    day 09 Linux下常见的打包压缩命令
    day 09作业
    第8天作业
    day 08 重定向/管道/sort/uniq/awk详解
    什么是输出重定向
    day07 Linux文件类型及软链接
    第6,7天作业
    day06 Linux根目录下重要目录
  • 原文地址:https://www.cnblogs.com/sekihin/p/10571044.html
Copyright © 2011-2022 走看看