ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
探検
Excel VBA 質問スレ Part57
■ このスレッドは過去ログ倉庫に格納されています
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
565デフォルトの名無しさん
2018/10/05(金) 22:05:56.09ID:uERkBuVa 質問です。
テキストファイルの中身をセルに出力する処理をやっているのですが、一部のテキストファイルの文字が正常に出力されません。(縦線 " | "のみが出力される)
ただし、判定によってセルの色を変えているのですが、その機能は生きているので、読み込み自体はできているみたいです。
また、全部のファイルで不具合があるわけではなく、特定のファイルの特定のレコードにのみ起こるっぽいです…
補足すると、テキストファイル自体はメインフレームの伝送機能で送ってます。これが原因に関係あるのかはわかりませんが…
詳細聞かれたらお答えしますので、解決にご協力頂ければと思います。
テキストファイルの中身をセルに出力する処理をやっているのですが、一部のテキストファイルの文字が正常に出力されません。(縦線 " | "のみが出力される)
ただし、判定によってセルの色を変えているのですが、その機能は生きているので、読み込み自体はできているみたいです。
また、全部のファイルで不具合があるわけではなく、特定のファイルの特定のレコードにのみ起こるっぽいです…
補足すると、テキストファイル自体はメインフレームの伝送機能で送ってます。これが原因に関係あるのかはわかりませんが…
詳細聞かれたらお答えしますので、解決にご協力頂ければと思います。
566デフォルトの名無しさん
2018/10/05(金) 22:07:25.21ID:uERkBuVa 565です。
本題を載せ忘れていました。
原因、改善方法がわかる方いましたら、ご返答願います。
本題を載せ忘れていました。
原因、改善方法がわかる方いましたら、ご返答願います。
567デフォルトの名無しさん
2018/10/05(金) 22:15:30.06ID:vSWfZutq 俺はインデントもしっかりでEnd Ifも先に書く派だな、他の言語での閉じ括弧みたいなもんだし
568デフォルトの名無しさん
2018/10/05(金) 22:17:06.45ID:KYi5h4An >>565
その特定のレコードを教えて
その特定のレコードを教えて
569デフォルトの名無しさん
2018/10/05(金) 22:27:19.79ID:XVCqdvbX570デフォルトの名無しさん
2018/10/05(金) 22:27:20.22ID:vSWfZutq >>565
コンピュータのベンダーや年式が違えば文字コード字形の割り当てが違うことも多い
手順
・テキストファイルの文字エンコード、記述形式を正確に把握する
・化けた部分前後数行のみのテストデータを作る
・ウォッチウィンドウを活用して原因を探る
コンピュータのベンダーや年式が違えば文字コード字形の割り当てが違うことも多い
手順
・テキストファイルの文字エンコード、記述形式を正確に把握する
・化けた部分前後数行のみのテストデータを作る
・ウォッチウィンドウを活用して原因を探る
571デフォルトの名無しさん
2018/10/05(金) 22:30:53.32ID:uERkBuVa >>568
INPUTはJCL(COBOLアプリを動かすためのスクリプト言語)をテキストファイルに落としたものです。
特定のレコードなのですが、テキストファイルを確認しても、他の出力されているレコードと見た目は全く変わりません。(スペース、データの末尾にも問題なし)
にも関わらず決まったレコードのみに不具合が発生します。
マクロが手元にないため画像は載せられませんが、
JCLについては、画像検索して出てきたものとほぼ同じですので参照頂ければと思います。
INPUTはJCL(COBOLアプリを動かすためのスクリプト言語)をテキストファイルに落としたものです。
特定のレコードなのですが、テキストファイルを確認しても、他の出力されているレコードと見た目は全く変わりません。(スペース、データの末尾にも問題なし)
にも関わらず決まったレコードのみに不具合が発生します。
マクロが手元にないため画像は載せられませんが、
JCLについては、画像検索して出てきたものとほぼ同じですので参照頂ければと思います。
572デフォルトの名無しさん
2018/10/05(金) 22:37:26.08ID:uERkBuVa >>570
やはり文字コードがきな臭いですかね
shift-jis になる仕様のはずなのと、他レコードは大丈夫なため問題ないと判断していたのですが、
vba上でも文字コードを明示してあげる必要がありそうですね
やはり文字コードがきな臭いですかね
shift-jis になる仕様のはずなのと、他レコードは大丈夫なため問題ないと判断していたのですが、
vba上でも文字コードを明示してあげる必要がありそうですね
573デフォルトの名無しさん
2018/10/05(金) 22:59:15.65ID:MhNSlq6Z メインフレームなぁ・・・最後に触ったの20年近く前で、びっくりするほど覚えてねぇ。
ちょっと気になるんだが、正常に出力されない時に表示される縦線は、
元のテキストファイルにデータとかデリミタとして含まれている文字なのか?
それとも変換できなかった文字が縦線に置き換わっているのか?
ちょっと気になるんだが、正常に出力されない時に表示される縦線は、
元のテキストファイルにデータとかデリミタとして含まれている文字なのか?
それとも変換できなかった文字が縦線に置き換わっているのか?
574デフォルトの名無しさん
2018/10/05(金) 23:11:22.13ID:VkzGqctC >>556
なんかコピペしたときにend ifが抜けてた
なんかコピペしたときにend ifが抜けてた
575デフォルトの名無しさん
2018/10/05(金) 23:23:40.27ID:lz8xFasJ >>573
縦線はデリミタではなく、元のレコードにも存在しない文字です。
処理としては、テキストファイルのレコードをそのままセルに出力するだけなのですが…
読み込んだ時点では問題なく、出力したときに縦線に置き換わってる感じですねー
縦線はデリミタではなく、元のレコードにも存在しない文字です。
処理としては、テキストファイルのレコードをそのままセルに出力するだけなのですが…
読み込んだ時点では問題なく、出力したときに縦線に置き換わってる感じですねー
576デフォルトの名無しさん
2018/10/05(金) 23:39:05.08ID:JjUc2WZB >>574
馬鹿は死ねよ
馬鹿は死ねよ
577デフォルトの名無しさん
2018/10/05(金) 23:53:59.29ID:E7eIsq4P >>575
ファイルからレコードを読み込んだら、イミディエイトウィンドウにも出力しておく
データをセルに書き込んだあと、もう一度セルから読み出して縦線になってたら中断するようなコードを書く
中断したらイミディエイトウィンドウの内容を確認
どこで化けたか、1つずつ追跡するしかないです
意外なところでミスをしていたり、仕様だったり、落とし穴があるもんです
ファイルからレコードを読み込んだら、イミディエイトウィンドウにも出力しておく
データをセルに書き込んだあと、もう一度セルから読み出して縦線になってたら中断するようなコードを書く
中断したらイミディエイトウィンドウの内容を確認
どこで化けたか、1つずつ追跡するしかないです
意外なところでミスをしていたり、仕様だったり、落とし穴があるもんです
578デフォルトの名無しさん
2018/10/06(土) 00:57:54.07ID:F9JdDpiN >>575
1.入力するテキストファイルに「ろくでもない見えない文字」が含まれている(たとえば制御文字)
→普通のテキストエディタでは見えないことが多いのでバイナリエディタで確認する
2.テキストファイルのレコードを読み取りセルに出力する処理のどこかに問題がある
→特定のレコードで発生するということは、特定の文字列のパターンか、特定のレコード数でのみ発生している可能性もある
こんな月並みなことしか考えつかないな。
個人的には、文字化けだったとしたら全部縦線に置き換わるのはおかしいと思うが(化けた文字が一切見受けられず縦線だけってのが妙に気になる)
1.入力するテキストファイルに「ろくでもない見えない文字」が含まれている(たとえば制御文字)
→普通のテキストエディタでは見えないことが多いのでバイナリエディタで確認する
2.テキストファイルのレコードを読み取りセルに出力する処理のどこかに問題がある
→特定のレコードで発生するということは、特定の文字列のパターンか、特定のレコード数でのみ発生している可能性もある
こんな月並みなことしか考えつかないな。
個人的には、文字化けだったとしたら全部縦線に置き換わるのはおかしいと思うが(化けた文字が一切見受けられず縦線だけってのが妙に気になる)
579デフォルトの名無しさん
2018/10/06(土) 04:51:40.31ID:tnNc0I+3 とりあえず、どんなコードで読み取って表示してるか出さんと話にならんわ
580デフォルトの名無しさん
2018/10/06(土) 07:12:44.67ID:GeqHzxmy 実はテキストファイルのエンコードがutf8とかだったりして
581デフォルトの名無しさん
2018/10/06(土) 07:49:00.01ID:4qqF7BWz メインフレームだからEBCDICだろ変換前はEBCDICの変換は面倒い
582デフォルトの名無しさん
2018/10/06(土) 07:55:07.00ID:omtH0luh EOTとかVTの類の制御文字な気がする
583デフォルトの名無しさん
2018/10/06(土) 13:50:07.16ID:tnNc0I+3 >>561
SHIFT-JISのはずって言ってるし、ホスト側に大抵変換ツールあるだろ
文字コードや制御文字の可能性よりプログラムのバグの方が確率高い気がするなぁ
まあコード出せばどっちの問題かはだいたい判別できるはず
化けるデータのダンプでもいいけどな
SHIFT-JISのはずって言ってるし、ホスト側に大抵変換ツールあるだろ
文字コードや制御文字の可能性よりプログラムのバグの方が確率高い気がするなぁ
まあコード出せばどっちの問題かはだいたい判別できるはず
化けるデータのダンプでもいいけどな
584デフォルトの名無しさん
2018/10/07(日) 13:12:34.96ID:DYNz6D7I 色々と意見ありがとうございます。
コードが掲示できなくて申し訳ないですが、
文字コードについてはホストの変換機能があるはずなので、プログラム上のバグとみてデバックしてみます。
コードが掲示できなくて申し訳ないですが、
文字コードについてはホストの変換機能があるはずなので、プログラム上のバグとみてデバックしてみます。
585デフォルトの名無しさん
2018/10/07(日) 15:35:18.94ID:RZXmBbwE586デフォルトの名無しさん
2018/10/07(日) 15:38:24.87ID:RZXmBbwE■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★2 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 高市早苗総理「金利上昇よりも日本の成長が大事」 ★3 [Hitzeschleier★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ2🧪
- 今さっき西谷駅でゲロ吐いてしれっと逃げたやつ
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- だから野球回がないアニメはクソアニメだって俺最初から言ってたじゃん
- もちもち食感って言葉があるけど、私も餅ってもちもちしてないよな
