|    | 
     CSVファイルを読み込み、エクセルファイルに貼り付ける処理で、不明なことがあります。 
csvファイルに値が入っている場合は正常に処理されるのですが、値が入っていない場合「ファイルにこれ以上データがありません」というエラーメッセージが表示されます。 
値が入っていない場合、値は空白セル表示にしたいのですが、やり方がわかりませんでした。 
よろしくお願いします。 
 
ちなみに以下にあるB.csvの場合は値が空白の場合、空白セルで表示されました。 
H.csvの場合にエラーが表示されます。 
 
H.csvの中身(どちらも値が入っている場合) 
AA,CC 
 
こういう場合にエラーになる↓ 
AA, 
や 
,CC 
 
B.csvの中身 
,,103,,102001,AAAAAAAAAA,1,135-12,0,10,1,1,現像,,1,現像,0,6,1 
 
 
test.exlのソース 
Const csv1 = "H.csv" 
Const csv2 = "B.csv" 
 
Sub Auto_Open() 
  Dim fname As String 
  Dim fno As Integer 
  Dim col(0 To 18) As Variant 
  Dim i As Integer 
  Dim sts As String 
   
  'ファイル名 
  fname1 = ActiveWorkbook.Path & "\" & csv1 
  fname2 = ActiveWorkbook.Path & "\" & csv2 
   
  'CSVファイルの内容を貼り付ける(H.csv) 
  fno = FreeFile 
  On Error GoTo file_not_found 
  Open fname1 For Input As #fno 
  On Error GoTo 0 
  If EOF(fno) = False Then 
    '一旦String型で受けてVariant型に入れなおす 
    For i = 0 To 1 
      Input #fno, sts 
      col(i) = sts 
    Next 
    Range(Cells(2, 19), Cells(2, 20)).Value = col 
  End If 
  Close #fno 
   
  'CSVファイルの内容を貼り付ける(B.csv) 
  fno = FreeFile 
  On Error GoTo file_not_found 
  Open fname2 For Input As #fno 
  On Error GoTo 0 
  l = 4 
  Do Until EOF(fno) 
    '一旦String型で受けてVariant型に入れなおす 
    For i = 0 To 18 
      Input #fno, sts 
      col(i) = sts 
    Next 
     
    l = l + 1 
    Range(Cells(l, 2), Cells(l, 20)).Value = col 
  Loop 
  Close #fno 
   
  'オートフォーマット 
  Cells(4, 2).CurrentRegion.AutoFormat _ 
    Format:=xlRangeAutoFormatLocalFormat3, _ 
    Number:=False, _ 
    Font:=False, _ 
    Alignment:=False 
   
  'CSVファイルを削除する 
  'Kill fname1 
  'Kill fname2 
   
  Exit Sub 
   
file_not_found: 
  MsgBox "CSVファイルが見つかりません", vbCritical + vbOKOnly, "システムエラー" 
 
End Sub 
 | 
     
    
   |