[[20190214112219]] 『改行を含んだCSVをExcelで開く方法』(ところてん) ページの最後に飛ぶ

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

 

『改行を含んだCSVをExcelで開く方法』(ところてん)

こんにちは。

早速ですが、改行を含んだCSVをエクセルで開く方法がありましたら教えていただければ幸いです。

Excel2010ですが、そのままCSV開くのではなく、リボン→データ→テクストファイルで、開きます。
この方法で開きたい理由は、住所番地5-3-5などを、変な数値や日付にしたくないからです。エクセルで開いて文字列にすると元の表示にはならないのでこの開き方にしていますが、1つのセルに改行が含まれていると2行表示になってしまうのです。

ほとんどのセルが改行されており、なんとかならないかなと考えています。
よろしくお願いいたします。

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


VBAでBOOKではなくテキストファイルとして読み込んで
改行を消すかスペースに置き換えて
からそのままセルにほり込むのも1手かと
m(_ _)m
(隠居じーさん) 2019/02/14(木) 13:06

 >1つのセルに改行が含まれていると2行表示になってしまうのです。
 今一つイメージが掴めないのですが、メチャクチャになっている、ということですか?

 以下のコードで元のCSVを指定すると、同一フォルダに "元の名前_Clean.csv"というファイルを生成します。
 文末以外の改行を削除したものです。

 Sub test()
     Dim fn As String, txt As String
     fn = Application.GetOpenFilename("CSVFiles,*.csv")
     If fn = "False" Then Exit Sub
     txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(fn).ReadAll
     With CreateObject("VBScript.RegExp")
         .Global = True: .MultiLine = True
         .Pattern = "(.*)[\r\n]+(.*)"
         txt = .Replace(txt, "$1$2")
     End With
     Open Replace(fn, ".csv", "_Clean.csv") For Output As #1
         Print #1, txt
     Close #1
 End Sub
(seiya) 2019/02/14(木) 14:09

隠居じーさん様
ありがとうございます。考え方とても参考になります。

seiya様
マクロ作成ありがとうございます!ご認識の通りです。めちゃめちゃになっていました。
マクロも作成いただいたもので実行できました!ありがとうございます。
1個1個セルと文字を繋げていたので、すごく時間短縮になりました。
お手数をおかけしました。

みなさまありがとうございました。
(ところてん) 2019/02/14(木) 15:12


すみませんまだいらっしゃいますでしょうか?

         Columns("I:J").Select
    Selection.Delete Shift:=xlToLeft

を挿入したいのですが、どこに挿入したら良いのか教えていただけないでしょうか?

(ところてん) 2019/02/14(木) 15:26


 こんばんは ^^
解決したみたいでよかったですね。
(ところてん)さん  2019/02/14(木) 15:26は
別件ですか?
>>を挿入したいのですが、どこに挿入したら良いのか教えていただけないでしょうか?
と
突然おっしゃられても、後先が不明なので。。。
どことも、申し上げられないのではないでしょうか。 

(隠居じーさん) 2019/02/14(木) 16:44


 外出していました...

 [データ]-[テキストファイル]と進んで、余分な列をインポートしなければよいのでは?
(seiya) 2019/02/14(木) 17:39

 おおお ^^ 。。。なるほど。。。
そぉいう事みたいですね
失礼致しました。
でわでわ
m(__)m

(隠居じーさん) 2019/02/14(木) 18:08


 ところてん さん 横入り済みません。
>> "(.*)[\r\n]+(.*)"
seiya さん いつもお世話になります。便乗質問で恐縮ですが
$1 = ゼロ以上の任意の文字と改行、
$2 = 改行と一つ以上の任意の文字とゼロ以上の任意の文字列
で
結果的に文字列の末尾以外何処にrかnが存在してもマッチ!
でよろしいでしょうか。???
教えていただければ大変うれしいです。^^
m(_ _)m

(隠居じーさん) 2019/02/14(木) 18:36


 改行コード以外の一文字の間にある改行コード(vbCr, vbLF 又は vbCrLf)にマッチさせて。
 後方参照で必要な部分だけ残す。

 という意味です。
(seiya) 2019/02/14(木) 18:45

 seiyaさん、すみません
早速のレス有難うございます。m(__)m
あ、はい。大体、概ね理解出来ました。 ← つもりだけかも。。。( ̄▽ ̄)
後方参照。。。おさらい致します。
また、別スレでお尋ねするかもしれませんが。
宜しくお願い致します。
よそ様のスレ、ですので。。。これにてお暇いたします。
有難うございました。
ところてん、さん
済みませんでした
m(__)m

(隠居じーさん) 2019/02/14(木) 18:58


コメント返信:

[ 一覧(最新更新順) ]


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