
ExcelエクセルVBAマクロについてテキストファイルから改行コードを取り除いて
変数に読み込む方法について確認させてください。
下記のVBAログラムはWordファイルをテキストファイルに落としたファイルを変数aに
読み込んでいます。
このとき、読み込んだテキストファイルはWordファイルをテキストファイルに
落とし込んだファイルなので改行コードが残ってしまいます。
この改行コードを削除したうえで変数aに読み込みたいのですが可能でしょうか。
改行コードはメモ帳では「↓」と下矢印に似た文字で表示されます。
(実際には下矢印ではないようです。)
今のところ、Replace関数で改行コードを削除するプログラムを
考えているのですが、改行コードのVBAでの表現方法が分からないので
先に進むことが出来ません。いい案があればぜひご教授下さい。
あるいはほかの方法でも改行コードが削除出来れば結構です。
またこの変数aに読み込んである文字列からかぎカッコの内部にある文字を
抽出してエクセルの行方向に出力する方法があればご教授頂ければ幸いです。
例えば
“あなたは「こんにちは」と言いました。
私は「元気ですか」と聞きました。”
が文字列aに読み込んである場合、“こんにちは”、“元気ですか”を抽出して
エクセルに順に出力という方法です。
色々と書きましたが、よろしくお願いいたします。
以下、VBAプログラム本文です。
----------------------------------
Sub sample1()
Dim a As String
a = CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Readall
CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream.Close
End Sub
No.3ベストアンサー
- 回答日時:
Windowsの改行はCRLFです。
#1さんの仰るとおり、chr(13)+chr(10)ですね。あるいはvbCr,vbLf,vbCrLfなんてのもあります。
あとプログラム本文は良くないです。
最低でもこう書くべきです。
'-------------------------------------------------
dim objStream as Object
set objStream = CreateObject("Scripting.FileSystemObject").GetFile("C:\sample.txt").OpenAsTextStream
a=objStream.readall
objStream.Close
'--------------------------------------------------
もとのソースだと、...OpenAsTextStreamと書いた時点でテキストを開いてます。
1回目と2回目は別のモノ。つまり2回開いてて、1回目は開きっぱなし。
>かぎカッコの内部にある文字を抽出
これはご自分で考えてみて下さい。
例えば、crlfを除去したのなら
b=replace(a,"「",vbcr)
b=replace(b,"」",vbcr)
とでもしておいてvbcrでSplit()すれば配列の奇数番目が括弧の中身です。
括弧が閉じてない場合とか半角だったりする場合とかもあるので注意ですね。
一番良いのは正規表現を使う方法ですが、これはちょっとハードルが高いでしょう。
返事遅くなって申し訳ございません。
アドバイスを参考にトライしてみたところ、うまく出来ました。
本当に助かりました。ありがとうございます。
No.2
- 回答日時:
ReadAllを使わないで、1レコード(復帰・改行まで)を読み込む仕組みは使えないのか。
ーー
質問の表現だが、コンピュター処理は(ファイルを扱うものは)すべてファイルを読んで、変数にセットしてから、色々処理を行うものです。そのとき(主に順編成ファイルのことだが)
(1)ファイルを終わりまで読み込むもの。ReadAll的なもの
(2)レコード単位で変数に読み込むもの
がある。
>この改行コードを削除したうえで変数aに読み込みたいのですが可能でしょうか
変数Xに読み込んだものから、復帰改行や、改行を目当てに
(1)区切る
(2)他のものに置き換える。例えば空白に置き換えるという意味で、削除
などをするはず。
あるいは上で言った、1レコードを読む仕組みを使って、1レコードごとに読み込む。
これは1レコードをどういう風に区切る仕組み化、処理系によルので勉強のこと。
OSで違ったりするのは有名な話。
表現が適当でない。
改行コード、復帰改行コードを白兄で、VBSCRIPTのファイル関係を暑かったり、プログラムをすることは、速すぎる。
ーーー
こんな質問コーナーに、わざわざ質問しなくても、Googleで「VBA 改行コード」「VBA 改行コード削除」などで照会すればすぐ判ること。
http://www.kantenna.com/pg/2009/12/excel_vba.php など多数。
返事遅くなって申し訳ございません。
みなさんからのアドバイスを参考にトライしてみたところ、うまく出来ました。
本当に助かりました。ありがとうございます。
返事遅くなって申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでCSVをExcelに取り込む時に、途中の改行を取り除くには
Visual Basic(VBA)
-
EXCEL(VBA) 末尾の改行のみ削除したい
Excel(エクセル)
-
最終行の改行について
Visual Basic(VBA)
-
-
4
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
5
VBAでテキストファイルの改行を無視する方法
Access(アクセス)
-
6
Excel_VBAで改行コードの無いファイルを開きたい。
Excel(エクセル)
-
7
EXCELにcsv形式の外部データを取り込む際にカンマ区切りで取り込も
Excel(エクセル)
-
8
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
9
vbsで最後の行を削除する
その他(プログラミング・Web制作)
-
10
VBAでの100万行以上のデータの取り込み
その他(プログラミング・Web制作)
-
11
CSVファイルの改行コード判別
Visual Basic(VBA)
-
12
マクロでセル内の改行を削除する方法
Visual Basic(VBA)
-
13
テキストファイルを直接置換する方法
Visual Basic(VBA)
-
14
Excel VBAにて、2GB超の点群データ(CSVファイル,改行コードLF)を高速で解析したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
jsp 改行コードで改行させて表...
-
VBA初心者です。txtファイルの...
-
LaTeX: captionの中で改行した...
-
エスケープ文字の復帰(¥r)と...
-
タグの中の改行文字を正規表現...
-
変数に格納している文字列の読...
-
PHPで出力したHTMLのソースが汚い
-
ファイル入出力について教えて...
-
最終行の改行について
-
[iPhone]改行をファイル出力す...
-
VC++のボタン
-
Excel VBS、ADODB.Streamで改行
-
改行について
-
FORTRANで作成したテキストファ...
-
JavaDoc コメントの改行について
-
ファイルから読み取った改行文...
-
itextで改行するには
-
ソースコードの1行が長いとき...
-
CSV出力時の改行コードについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
改行について
-
エクセルVBA 文字列領域が不足...
-
最終行の改行について
-
テキストボックス行の桁数を制...
-
【VBA】エクセルで最後の不要な...
-
awkで改行を除いて文字列を抜き...
-
グレープシティのSPREAD...
-
VBAでCSVをExcelに取り込む時に...
-
秀丸の正規表現で複数行にわた...
-
C# DataGridViewのセルを改行禁...
-
JavaMail,本文中の改行について
-
テキストファイルから改行コー...
-
vb.netでのリッチテキストボッ...
-
ラベル(スタティックテキスト)...
-
jsp 改行コードで改行させて表...
-
COBOLの改行
-
文字列型変数に1024を超えた文...
おすすめ情報