Excel VBA質問箱 IV

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

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


59223 / 76738 ←次へ | 前へ→

【22225】Re:csvファイル入力について
質問  wada  - 05/2/12(土) 15:56 -

引用なし
パスワード
   コードは下記のようになっております。
150フィールド分のcsvを読み込みます。
3列目の受理番号は、シート既存のデータの最終行の受理番号に+1を加算していきます。
4列目と104列目は日付フィールドでcsvファイルのYYYYMMDD形式のテキストファイルを日付データに変換していきます。

Sub CSVファイル登録()

Dim RowNum As Long
Dim ColmunNum As Long
Dim EndjuriNum As Long
Dim myTxtFile As String

'データを登録していくシート
Worksheets("登録").Activate

'シートの最終行を選択
Cells(1, 3).Select
Selection.End(xlDown).Select
EndjuriNum = Cells(Selection.Cells.Row, 3).Value
RowNum = Selection.Row

'シートに登録するCSVファイルを開く、150のフィールド用にカンマで区切られている
myTxtFile = ActiveWorkbook.Path & "\入力データ.csv"
    
    Open myTxtFile For Input As #1
    
    Do Until EOF(1)
    
    
      '1から164列までのデータを変数に入れる
      Dim mybuf(1 To 150) As String
      Dim i As Integer
      
      For i = 1 To 150
        Input #1, mybuf(i)
      Next i
      
      '必須項目が不正であれば入力をはじく、桁数で判定
     If Len(mybuf(1)) <> 3 Or Len(mybuf(4)) <> 8 Or Len(mybuf(15)) <> 3 Or Len(mybuf(16)) <> 1 Or _
      Len(mybuf(17)) <> 1 Or Len(mybuf(30)) <> 2 Or Len(mybuf(31)) <> 2 Or Len(mybuf(35)) <> 2 Or _
      Len(mybuf(36)) <> 2 Or Len(mybuf(36)) <> 2 Or Len(mybuf(99)) <> 3 Or Len(mybuf(104)) <> 8 Or _
      Len(mybuf(111)) <> 2 Then
      
      MsgBox "データが不正のため終了"
      Close #1
      Exit Sub
     End If
      
      '3列目は受理番号、前レコードの受理番号に1を加算していく
      mybuf(3) = EndjuriNum + 1
      
      '4列目と104列目は日付フィールド、YYYYMMDDのテキスト形式から日付データに変換
      mybuf(4) = Left(mybuf(4), 4) & "/" & Mid(mybuf(4), 5, 2) & "/" & Right(mybuf(4), 2)
      mybuf(104) = Left(mybuf(104), 4) & "/" & Mid(mybuf(104), 5, 2) & "/" & Right(mybuf(104), 2)
      
      RowNum = RowNum + 1

      For ColmunNum = 1 To 150
        Cells(RowNum, ColmunNum) = mybuf(ColmunNum)
      Next ColmunNum
      
      EndjuriNum = EndjuriNum + 1
    
    Loop
    
    Close #1

End Sub

以上がおおまかなコードですが、これを処理時間を短縮できるような方法を教えてください。(効率いい方法を)
0 hits

【22219】csvファイル入力について wada 05/2/12(土) 10:51 質問
【22220】Re:csvファイル入力について かみちゃん 05/2/12(土) 10:56 発言
【22222】Re:csvファイル入力について wada 05/2/12(土) 11:04 発言
【22225】Re:csvファイル入力について wada 05/2/12(土) 15:56 質問
【22231】Re:csvファイル入力について Hirofumi 05/2/12(土) 20:11 回答
【22243】Re:csvファイル入力について wada 05/2/13(日) 1:27 お礼

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