[[20181206115555]] 『日時、改行あり文章が混在したCSVを全て文字列とax(ひな) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日時、改行あり文章が混在したCSVを全て文字列として貼り付け』(ひな)

お知恵をおかし下さい!

マクロで、日時、改行あり文章が混在したCSVを全て文字列として
エクセルに貼り付けたいです。

【CSV】

(日付)(時間)(名前)(改行あり文章)
※最上行はA1からD1に情報があり、貼り付け先のエクセルも
同じ配置にしたいです。

上記の項目で列数は固定ですが、行は、日によって変動いたします。

よろしくお願いいたします!

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 いろいろ情報足りない気はしますが、
 CSVなのでカンマ区切り、文字コードSJIS、改行コードはLFと勝手に想定して・・

 Sub TEST()
    Const CSVPath As String = "C:\TEST.csv"
    Dim Rec
    Dim buf
    Dim i As Long
    On Error Resume Next
    Rec = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(CSVPath).ReadAll, vbCrLf)
    For i = 0 To UBound(Rec)
        buf = Split(Rec(i), ",")
        Range("A" & i + 1).Resize(1, UBound(buf) + 1).NumberFormatLocal = "@"
        Range("A" & i + 1).Resize(1, UBound(buf) + 1).Value = buf
    Next i
    On Error GoTo 0
 End Sub

 でどうでしょう。

(ろっくん) 2018/12/06(木) 13:11


編集かぶっけどそのまま。

↓をマクロの記録をおしてから、手動で実行し、得られたコードを整理するとよいとおもいます。

 (1)「データ」タブの「外部データの取り込み」リボンの「テキストファイル」を選択して「インポート」
 (2)「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択して「次へ」
 (3)区切り文字の「カンマ」にチェックを入れて「次へ」
 (4)列のデータ形式をすべて「文字列」にして「完了」
 (5)「既存のワークシート」のセル参照欄?に「=Sheet1!$A$2」のように貼付(取り込み先を設定)
 (6)「プロパティ」をクリックし「クエリの定義を保存する」のチェックを"外して"「OK」
 (7)1つ前のウィザードにもどってるのでそのままOK
(もこな2) 2018/12/06(木) 13:25

(ろっくん)さん

ありがとうございます!

試してみたんですが、改行している文章が次の行に移動しちゃいます。
あと、「" "」もくっついてくるので無くしたいのです。。。

(ひな) 2018/12/06(木) 14:29


(もこな2)さん

ありがとうございます!
教えていただいた手順で試してみます!
(ひな) 2018/12/06(木) 14:31


 >(日付)(時間)(名前)(改行あり文章) 
 >「" "」もくっついてくるので無くしたいのです。
 実際のデータでなくて結構ですので、具体的にヘッダの部分とその後の2-3行を提示してもらえませんか?
(seiya) 2018/12/06(木) 14:48

>あと、「" "」もくっついてくるので無くしたいのです。。。
なら、逆にブックとして開いてから、目的のブック(シート)にコピペしたらどうでしょう?

(もこな2) 2018/12/06(木) 15:31


 「改行あり文章」がどのようにcsvに入っているのか知りたいです。
 seiyaさんも言われてましたが、何行分かサンプルのデータをご提示いただけませんか?
 個人的にはもこな2さんの案に賛成ですが、ファイルがたくさんあるとかですかね?
(ろっくん) 2018/12/06(木) 17:11

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.