VBAでCSVをExcelに取り込む時に、途中の改行を取り除くには
はじめて質問させていただきます。
内容はhttp://oshiete.goo.ne.jp/qa/2793590.html のものに似ていまして、あるシステムが吐き出すCSVを、Excelで作ったリストの雛形にVBAで取り込むのですが、CSVの途中で改行されていたりするために上手くいきません。
元のCSV例
111,AAA,aaa,BBBB,bbbb
222,CCC,ccc,DDDD,dddd
333,EEE,eee
,FFFF,ffff
444,GGG,ggg,HHHH,hhhh
↓
取り込んだリスト例
A | B | C | D | E
──┼──┼──┼──┼──
111 |AAA |aaa |BBBB|bbbb
──┼──┼──┼──┼──
222 |CCC |ccc |DDDD|dddd
──┼──┼──┼──┼──
333 |EEE |eee | |
──┼──┼──┼──┼──
|FFFF|ffff | |
──┼──┼──┼──┼──
444 |GGG |ggg |HHHH|hhhh
当然の結果なのですが、これを例えばeeeの後ろの改行だけを削除して、333~ffffまで一レコードとして読み込ませたいのです。が、
最後の改行と途中の改行の区別をどうつけさせればいいのか、どの様にしたらいいのか見当がつきません。
とりえあず、
・先頭(A列)には必ず数字が入る
・カンマの数(レコード数?)は固定
・CSV中の余分な改行が入る時と入らない時がある
このあたりが判定の手がかりになると思いますが、厚かましいお願いで恐縮ですが、ヒントになる様なコードをご教授いただけますでしょうか。
何分初心者なもので、情報不足な点ありましたらご指摘下さい。
よろしくお願い致します。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
Excelでやるより、そのCSVファイルをTeraPad等のテキストエディタで改行+「,」を「,」に置換してからExcelで開いた方が手っ取り早いように思います。
それじゃ駄目?
No.4
- 回答日時:
回答番号:No.3 です。
失礼しました。orz>あるシステムが吐き出すCSVを
>元のCSV例
>:
>333,EEE,eee
>,FFFF,ffff
セル内改行と限らないから
333,EEE,"eee[改行コード]",FFFF,ffff
とダブルクォートで囲まれてるわけじゃないんですね。
ひょっとして[改行コード]も vbLf か vbCrLf かで区別されてるかも判らない?
すみません、勘違いしました。
取り敢えず私のレスは無視しておいてください。
#修行のタビに出ます...orz
No.3
- 回答日時:
データ量が膨大で、CSVファイルを開くのに時間がかかるという状況以外は
Openメソッドで普通に開いてコピー処理したほうが簡単です。
開く時間を短縮したいという事であれば、事前にセル内改行を取り除く方法や、
Line Input読込み時に都度チェックする方法などあります。
前者の事例は
■EXCELにcsv形式の外部データを取り込む際にカンマ区切りで取り込も...
http://oshiete.goo.ne.jp/qa/5972724.html?order=asc
#状況的にはOpenメソッドで充分な案件だったと反省...orz
後者は
『 CSVRead SplitCsv 』
をキーワードにgoogle検索すると
■ダブルクォートのCSVを読み込むには?
http://park7.wakwak.com/~efc21/cgi-bin/exqaloung …
などhitします。参考にしてみてください。
No.2
- 回答日時:
これでうまく行くかどうかデータの規則性の情況に拠るが
Line Inputで1行分を変数に読み込む。
s殿変数に対し、カンマでSplit関数を使い配列に分ける。
要素数が、決まりの5個より少なければ、次のレコードも読んでつなげてみる。
6個以上になる場合があるようだと絶望。か何かルールを設定(6個以上を無視やセルに設定して人間が目視チェックなど)
無いとして、5個の場合は5列のセルにバリアント変数のデータを代入。
1レコードの中のカンマの数を数えることと同様のことをやっている。
Split利用は
例えば
Sub test01()
a = "aa,sdf,gh,j,k"
s = Split(a, ",")
Range("A1:E1") = s
End Sub
のRange("A1:E1") = s
が(1行で)できることがメリット。
No.1
- 回答日時:
CSVを読むのは、テキストファイルとしてOPENしておいて、LINE INPUTですかね?
LINE INPUTで読み取った際に受け取る変数を「次工程」にまわす前に、カンマの数を数える。
・カンマの数が一致するなら、現在の読み取り結果を「次工程」にまわす
・カンマの数が不足するなら、さらにCSV次行を読み、初回の読み取り結果と連結して、カンマの数を数えるところに戻る。
・カンマの数がオーバーするなら、データ異常で打ち切る。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
EXCELにcsv形式の外部データを取り込む際にカンマ区切りで取り込も
Excel(エクセル)
-
テキストファイルから改行コードを削除して読込む方法
Visual Basic(VBA)
-
マクロでセル内の改行を削除する方法
Visual Basic(VBA)
-
-
4
ダブルクォーテーション()で囲まれた範囲の改行のみ削除する方法を教えてください"
その他(Microsoft Office)
-
5
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
6
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
7
VBAでテキストファイルの改行を無視する方法
Access(アクセス)
-
8
csvファイル 項目数取得
Visual Basic(VBA)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
【ExcelVBA】各セルをダブルクォーテーションで括ってCSV保存したい
Visual Basic(VBA)
-
11
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
12
On ErrorでエラーNoが0
Visual Basic(VBA)
-
13
データにカンマが入ったCSVデータのread方法
Visual Basic(VBA)
-
14
最終行の改行について
Visual Basic(VBA)
-
15
VBAでCSV内にある改行を取る方法
PowerPoint(パワーポイント)
-
16
途中で改行されたCSVをAccessに正常に取り込むには?
Access(アクセス)
-
17
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
18
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
19
VBAでCSVファイルの特定行を書き換える方法はあるのでしょうか?
その他(プログラミング・Web制作)
-
20
配列でデータが入っている要素を求める方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
改行を読み飛ばす
-
テキストボックスに改行を含む...
-
改行コード(CR/LF)の設...
-
Scilabの使い方
-
texのchapterが改行される
-
ラベル(スタティックテキスト)...
-
\\n で改行する意味って??
-
Excel VBAからBeckyを起動して...
-
textarea , PHP, 確認画面 改行
-
エクセルのVBAでセルのコメント...
-
FORTRANで作成したテキストファ...
-
ExcelVBAでメールを作成してメ...
-
C言語で改行コードを知る
-
秀丸の正規表現で複数行にわた...
-
ソフト改行文字が入らず困って...
-
fscanf関数について
-
PHPExcelでのexcelヘッダ編集に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
最終行の改行について
-
【VBA】エクセルで最後の不要な...
-
変数の中の改行コードをBRタグ...
-
テキストファイルから改行コー...
-
ファイルから読み取った改行文...
-
COBOLの改行
-
エクセルVBA 文字列領域が不足...
-
C++で空Enterの入力を判...
-
JavaMail,本文中の改行について
-
コンボボックスの項目中に改行を
-
改行について
-
JavaDoc コメントの改行について
-
C# DataGridViewのセルを改行禁...
-
VBAでCSVをExcelに取り込む時に...
-
jsp 改行コードで改行させて表...
-
エディットボックスで改行
-
awkで改行を除いて文字列を抜き...
おすすめ情報