過去ログ

                                Page     213
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼あるディレクトリにあるcsvをtxtファイルとして保存したい  pot 02/10/16(水) 17:09
   ┣Re:あるディレクトリにあるcsvをtxtファイルとして保存したい  りん 02/10/16(水) 22:25
   ┗Re:あるディレクトリにあるcsvをtxtファイルとして保存したい  pot 02/10/17(木) 9:04

 ───────────────────────────────────────
 ■題名 : あるディレクトリにあるcsvをtxtファイルとして保存したい
 ■名前 : pot
 ■日付 : 02/10/16(水) 17:09
 -------------------------------------------------------------------------
   書くにはかけたのですが、処理がかなり遅くなってしまいます
あと、どこかおかしいところがあれば 指摘してくれませんかDim Filename As String, Folders As String
Dim wb As Workbook
Folders = "D:\Tumsy\Toubu\Loadtxt\"

Application.DisplayAlerts = False

Filename = Dir(Folders & "*.csv")

i = 0

If Folders = "" Then
  MsgBox "Canceled", vbExclamation
Else
  
End If

Do Until Filename = ""

  i = i + 1

  Set wb = Workbooks.Open(Folders & Filename)
  
  Filename = Left(Filename, Len(Filename) - 4) & ".txt"
 
  wb.SaveAs "C:\cygwin\home\Administrator\toubu\" & Filename, xlText

  Workbooks(Filename).Close


Filename = Dir

Loop


End Sub
 ───────────────────────────────────────  ■題名 : Re:あるディレクトリにあるcsvをtxtファイルとして保存したい  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/10/16(水) 22:25  -------------------------------------------------------------------------
   potさん、こんばんわ。
>書くにはかけたのですが、処理がかなり遅くなってしまいます
>あと、どこかおかしいところがあれば 指摘してくれませんか

 特にどこかおかしいとは思いませんが。ScreenUpdatingをFalseにするだけで少しは速くなると思いますよ。

Sub Csv2Text()
  Dim IFileName As String, IFolder As String
  Dim OFileName As String, OFolder As String
  Dim NN As Integer
  
  With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
  End With
  '
  Dim wb As Workbook
  IFolder = "D:\Tumsy\Toubu\Loadtxt"
  OFolder = "C:\cygwin\home\Administrator\toubu"
  If IFolder = "" Then
    MsgBox "Canceled", vbExclamation
  ElseIf Dir(OFolder, vbDirectory) = "" Then
    MsgBox "Folder Not Found ", vbExclamation, OFolder
  Else
    '
    NN = 0
    '
    IFileName = Dir(IFolder & "\*.csv")
    Do Until IFileName = ""
      NN = NN + 1
      '
      OFileName = Left(IFileName, Len(IFileName) - 4) & ".Txt"
      Application.StatusBar = IFileName & " => " & OFileName '進捗
      Set wb = Workbooks.Open(IFolder & "\" & IFileName)
      '
      With wb
        .SaveAs OFolder & "\" & OFileName, xlText
        .Close
      End With
      Set wb = Nothing
      '
      IFileName = Dir
    Loop
  End If
  '
  With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    .StatusBar = False
  End With
  '
  MsgBox NN, vbInformation, "処理件数"
End Sub

こんな感じです。
 ───────────────────────────────────────  ■題名 : Re:あるディレクトリにあるcsvをtxtファイルとして保存したい  ■名前 : pot  ■日付 : 02/10/17(木) 9:04  -------------------------------------------------------------------------
   りんさん ありがとうございます(^^)

最初の段階より だいぶ早くなりました。

ここに投稿したのがはじめてだったので

回答が返ってきてよかったです。

今後もよろしくおねがいします
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 213