Excel VBA質問箱 IV

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

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


12679 / 76734 ←次へ | 前へ→

【69571】Re:CSV読み込みで
発言  kanabun  - 11/8/3(水) 17:08 -

引用なし
パスワード
   ▼たつのこ さん:
こんにちは〜

こういうのは、[データ]-[外部データの取り込み]-
[テキストファイルのインポート]メニュ−を使って指定のシートに
インポートされることをお勧めします。
ht tp://office.microsoft.com/ja-jp/excel/HP101022441041.aspx


以下は、あるCSVファイルをActiveSheetにインポートしたときの記録です。
(すこし編集してあります)

>  Worksheets("download.csv").Activate
>  Worksheets("download.csv").Columns("A:AX").NumberFormat = "@"
のあとに、以下のようなマクロ記録を適当に編集したものを書いておけば、
""の処理、改行コードの判別処理は不要になります。(改行コードが vbLf
だけのテキストファイルでもちゃんと読み込めます)

Sub Macro2()

  With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & fname, Destination:=Range("A2"))
> '  ↑CSVファイルfname をActiveSheetの[A2]セル以降にインポートします

    .Name = "F_Data"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 932
> '   ↑文字コードはShift-JIS です

    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
> '   ↑ダブルクート内を文字列データとします。データの前後の引用符は _
     自動的に削除してインポートされます

    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
>'   列のデータ形式をすべて文字列としています

    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False

    .Delete
>'   ↑読み込みRefreshが終わったらもとのCSVファイルとの接続を切断します
  End With
End Sub

4 hits

【69568】CSV読み込みで たつのこ 11/8/3(水) 15:34 質問
【69571】Re:CSV読み込みで kanabun 11/8/3(水) 17:08 発言

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