Excel VBA質問箱 IV

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

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


60226 / 76732 ←次へ | 前へ→

【21148】Re:Excelにcsvファイル貼り付け時の処理
回答  Jaka  - 05/1/13(木) 11:51 -

引用なし
パスワード
   こんにちは。

>読み込みが(4)の"10MB追加"というところで、Excel出力時には"10"だけしか出力されません。
Inputで読み込んでVariant変数に格納すると、こうなるとは思ってもいませんでした。
エクセルのいらぬ処理って言うか、val変換してその結果を判定してもろもろしているみたいな感じですね?
勉強になりました。
簡単には文字型(String)に格納すればうまくいくようですが、数値として代入できないのでセルに書き込んだ後に数値変換させるコードを追加するのもなんだと思いまして考えてみ結果、一旦String型で受けてVariant型に入れなおす事で何とかうまくいくみたいでした。
下記コードは、テスト時のままですから使う環境に合わせて変更してください。

Sub ttAuto_Open()
  Dim fname As String
  Dim fno As Integer
  Dim col(0 To 4) As Variant
  Dim i As Integer
  Dim sts As String
 
  'ファイル名
  'fname2 = ActiveWorkbook.Path & "\" & csv2
  fname2 = Application.GetOpenFilename("Excelファイル (*.csv;*.txt), *.csv;*.txt")
  If fname2 = "False" Then
    End
  End If

  '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)    '-----ココの処理がおかしいと思われる。
    'Input #fno, col(0), col(1), col(2), col(3), col(4)
    For i = 0 To 4
      Input #fno, sts
      col(i) = sts
    Next
    l = l + 1
    Range(Cells(l, 2), Cells(l, 6)).Value = col
  Loop
  Close #fno
 
  'オートフォーマット
  Cells(4, 2).CurrentRegion.AutoFormat _
    Format:=xlRangeAutoFormatLocalFormat3, _
    Number:=False, _
    Font:=False, _
    Alignment:=False
 
  'CSVファイルを削除する
  'Kill fname2
  Exit Sub
 
file_not_found:
  MsgBox "CSVファイルが見つかりません", vbCritical + vbOKOnly, "システムエラー"

End Sub
1 hits

【21120】Excelにcsvファイル貼り付け時の処理 Aiz 05/1/12(水) 15:16 質問
【21121】Re:Excelにcsvファイル貼り付け時の処理 IROC 05/1/12(水) 15:23 回答
【21126】Re:Excelにcsvファイル貼り付け時の処理 Aiz 05/1/12(水) 16:42 質問
【21133】Re:Excelにcsvファイル貼り付け時の処理 IROC 05/1/12(水) 18:26 回答
【21148】Re:Excelにcsvファイル貼り付け時の処理 Jaka 05/1/13(木) 11:51 回答
【21165】Re:Excelにcsvファイル貼り付け時の処理 Aiz 05/1/13(木) 17:11 お礼

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