2012-02-25 12 views

答えて

10

それは確かにあります。このよう

Set objFSO = CreateObject("scripting.filesystemobject") 
    'create a csv file 
    Set objTF = objFSO.createtextfile("C:\test\myfile.csv", True, False) 
    'open an existing csv file with writing ability 
    Set objTF = objFSO.OpenTextFile("C:\test\myfile.csv", 8) 

として

基本的な構文はCSVFSOで開く/作成されます。

CSVが、その後objTF =単語集合など

Const sFilePath = "C:\test\myfile.csv" 
Const strDelim = "," 
Sub CreateCSV_FSO() 
    Dim objFSO 
    Dim objTF 
    Dim ws As Worksheet 
    Dim lRow As Long 
    Dim lCol As Long 
    Dim strTmp As String 
    Dim lFnum As Long 

    Set objFSO = CreateObject("scripting.filesystemobject") 
    Set objTF = objFSO.createtextfile(sFilePath, True, False) 

    For Each ws In ActiveWorkbook.Worksheets 
     'test that sheet has been used 
     Set rng1 = ws.UsedRange 
     If Not rng1 Is Nothing Then 
      'only multi-cell ranges can be written to a 2D array 
      If rng1.Cells.Count > 1 Then 
       X = ws.UsedRange.Value2 
       'The code TRANSPOSES COLUMNS AND ROWS by writing strings column by column 
       For lCol = 1 To UBound(X, 2) 
        'write initial value outside the loop 
        strTmp = IIf(InStr(X(1, lCol), strDelim) > 0, """" & X(1, lCol) & """", X(1, lCol)) 
        For lRow = 2 To UBound(X, 1) 
         'concatenate long string & (short string with short string) 
         strTmp = strTmp & (strDelim & IIf(InStr(X(lRow, lCol), strDelim) > 0, """" & X(lRow, lCol) & """", X(lRow, lCol))) 
        Next lRow 
        'write each line to CSV 
        objTF.writeline strTmp 
       Next lCol 
      Else 
       objTF.writeline IIf(InStr(ws.UsedRange.Value, strDelim) > 0, """" & ws.UsedRange.Value & """", ws.UsedRange.Value) 
      End If 
     End If 
    Next ws 

    objTF.Close 
    Set objFSO = Nothing 
    MsgBox "Done!", vbOKOnly 

End Sub 
+0

'、これはExcelの一例ですが、あなたは、Outlook、Accessからレコードを書き込むために同じ技術を使用することができ、それに

を書き込むことによって変更することができますobjFSO.OpenTextFile( "C:\ test \ myfile.csv"、8) 'その行は、選択したフォルダに関係なく、常に** 70 - Permission Denied **エラーが発生しました。それは私が行を削除した後に働いた。 – chiliNUT

+0

コードを実行したときにcsvが開いていましたか? – brettdj

+0

いいえ、最初に作成しようとしていたときでした – chiliNUT

3

可能性があります。

FileSystemObject(FSO)は、ファイル、ドライブ、テキストストリームなどへのアクセスを提供するWindowsファイルシステムにアクセスするためのAPIを提供します.FSOはMicrosoft Scriptingランタイムに組み込まれており、スタンドアロンVBScriptまたはJScriptを使用しているWebページデザイナや、Visual Basic for Applications(VBA)を使用してMicrosoft Officeアプリケーションのユーザーに配布することができます。

いくつかの参照: -

Using The FileSystemObject With VB and VBA

How do I use FileSystemObject in VBA?

関連する問題