Excel VBA質問箱 IV

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

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


2536 / 13645 ツリー ←次へ | 前へ→

【67402】テキストデータをエクセルに読込むときの改行コード削除 かお 10/12/1(水) 10:44 質問[未読]
【67403】Re:テキストデータをエクセルに読込むとき... Jaka 10/12/1(水) 11:17 発言[未読]
【67405】Re:テキストデータをエクセルに読込むとき... かお 10/12/1(水) 15:37 質問[未読]
【67408】Re:テキストデータをエクセルに読込むとき... Jaka 10/12/1(水) 17:01 発言[未読]
【67416】Re:テキストデータをエクセルに読込むとき... かお 10/12/2(木) 13:59 発言[未読]
【67418】Re:テキストデータをエクセルに読込むとき... Jaka 10/12/2(木) 15:05 発言[未読]

【67402】テキストデータをエクセルに読込むときの...
質問  かお  - 10/12/1(水) 10:44 -

引用なし
パスワード
   テキストデータから、エクセルへデータを読み込むマクロを作成しています
そこで、どうしてもうまくいかなくて困っていることがあります

テキストデータ内に黒い四角■が存在するのですが、
この■があるところで、改行されてエクセルに表示されてしまいます

テキストデータでは・・・↓
test ■ test2

↓これをエクセルに読込むと・・・

test
test2
とでてきてしまう・・・

本来は、
test test2
と出てきてほしいのです

いろいろとネットで調べてみたところ、他の外部ファイルからテキストに落とすときに、
正常に認識されない改行コードは、黒四角(■)に置き変わる・・・とか書いてありました

自分なりにコードを記述して考えてみましたが、どうもうまくいきません
どうしたら、黒四角(■)を削除して、エクセルへ出力させることができるのでしょうか?

現在のコード
Dim strDir="C:\Temp\test\"
Dim Mytxt="test1.txt"
Open strDir & Mytxt For Input As #1

Do Until EOF(1)
Line Input #1, Mystr
Range("A65536").End(xlUp).Offset(1).Value = Application.Substitute(Mystr, "\n", "")

’↑上記のような感じで、置換え方法で考えてみましたがうまくいかないです
’黒四角はコードではどのように記述すればいいのでしょうか?

Loop
Close #1

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

【67403】Re:テキストデータをエクセルに読込むと...
発言  Jaka  - 10/12/1(水) 11:17 -

引用なし
パスワード
   >テキストデータでは・・・↓
>test ■ test2
これは、どうやって確認したのでしょうか?
ワードで開いてみるとどう表示されているのかな?

で、黒四角(■)がなんなのか解ったのでしょうか?

MsgBox Asc(問題の文字)
MsgBox AscW(問題の文字)
ぐらいじゃ解らないかもしれないけど、何なのか調べた方がいいと思う。

>正常に認識されない改行コード
ひょっとしたら、VBLFとか?

これで、開いてみるとどうなるのでしょうか?
(開けたから、原因が解るわけじゃないけど。)
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=2645;id=
参照設定 Microsoft DAO ?.? Object Library にチェックが必要と書き忘れてます。

【67405】Re:テキストデータをエクセルに読込むと...
質問  かお  - 10/12/1(水) 15:37 -

引用なし
パスワード
   ▼Jaka さん:

アドバイスありがとうございます

>>テキストデータでは・・・↓
>>test ■ test2
>これは、どうやって確認したのでしょうか?
>ワードで開いてみるとどう表示されているのかな?

テキストデータを開いてみてみると上記のような表示が出ています

>
>で、黒四角(■)がなんなのか解ったのでしょうか?

改行と認識できてない改行・・・?みたいなのかな?と勝手に解釈してました
>
>MsgBox Asc(問題の文字)
>MsgBox AscW(問題の文字)
>ぐらいじゃ解らないかもしれないけど、何なのか調べた方がいいと思う。
>
>>正常に認識されない改行コード
>ひょっとしたら、VBLFとか?
>
VBLFも置換で削除するように試してみましたが、やはり効果は現れませんでした

この小さな黒四角(■)を削除するのは、困難なことになりそうです

【67408】Re:テキストデータをエクセルに読込むと...
発言  Jaka  - 10/12/1(水) 17:01 -

引用なし
パスワード
   >テキストデータでは・・・↓
>test ■ test2
と、問題の文字の位置がわかっているんですから、1行だけ読み込んで

文字ナンバーを調べて
MsgBox AscW(問題の文字を1文字抜き出し)

MsgBox ChrW(ナンバー)
で消すとか。

拡張子をtxtに変えて、ファイル → 開く で、開いてみるとか?

【67416】Re:テキストデータをエクセルに読込むと...
発言  かお  - 10/12/2(木) 13:59 -

引用なし
パスワード
   ▼Jaka さん:

いろいろとアドバイスありがとうございます
・・・が、今のコード記述だと、
一行ずつ置換えをさせて削除させようとしていたのですが、
結果、
その一行が、
test■test2 で一行として認識してくれてるのかと思ったら、
test 
で一行と認識されてしまっているため、改行もなにもないため、削除すらできない状態でした
なので、なんの変化も現れなかったのですが、
どうもこうも、うまくいかないので、
違う方法を考えて見たいと思います


>>テキストデータでは・・・↓
>>test ■ test2
>と、問題の文字の位置がわかっているんですから、1行だけ読み込んで
>
>文字ナンバーを調べて
>MsgBox AscW(問題の文字を1文字抜き出し)
>
>MsgBox ChrW(ナンバー)
>で消すとか。
>
>拡張子をtxtに変えて、ファイル → 開く で、開いてみるとか?

【67418】Re:テキストデータをエクセルに読込むと...
発言  Jaka  - 10/12/2(木) 15:05 -

引用なし
パスワード
   書き忘れ、参照設定、Microsoft Forms 2.0 Object Library 付いている事。
このファイルでユーザーフォームを弄ったりすれば勝手にチェックが入ります。

Sub ckclvcl()
Dim PsSt As String, St As String
PsSt = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\郵便番号データ\KEN_ALL_15列92866行.CSV"
With CreateObject("Scripting.FileSystemObject")
  With .OpenTextFile(PsSt, 1)
     St = .ReadAll
     .Close
  End With
End With

With New DataObject
  .SetText St
  .PutInClipboard
End With

ActiveSheet.Paste Range("A1")
End Sub

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