• ベストアンサー

OSの種類やバージョンの違いおける改行コードの扱いかた

過去に似たような質問がありましたが、解決出来ませんでしたので、質問をあげさせて頂きます。今VBAを利用してアクセスのデータをエクセルにエクスポートしています。エクスポート自体はうまくいっているのですが、アクセスのフォーム画面で改行(enter)したところが、うまくエクセルの方で表示せず、どうしても文字化けして「・」になったり、文章の一部がかってに消えていたりしてうまくいきません。さらに、WINDOWS98とWINDOWS2000のPC両方でこのシステムを利用したいのですが、98と2000でエクセルの表示状況が違います。得に98の場合は、文字が消えたりが多く発生します。処理の手順ですが、アクセスのフォーム上の値を変数に代入し、そのときにアクセスの改行(vbCrLf)を(Chr(10))にReplace関数を利用して変えてから代入しています。 ==== 関数部分 ==== Function Tyosetu(In_Data As String) As String Tyosetu = Replace(In_Data, vbCrLf, Chr(10)) End Function エクセルのセルには【折り返して表示する】にチェックを入れています。何か対処法があればご教授ください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jmh
  • ベストアンサー率23% (71/304)
回答No.3

> テキストボックス内での改行部分のコードだと… > エクセルで「=CODE(MID(A1,5,1))」などとして、A1の5文字目のコードを調べたりできます。 「何が何に変わってしまうのかが分かれば、ナンとかなるんじゃないかなぁ」という意味です。

simple-t
質問者

お礼

お返事ありがとうございますM(vv)M 一度試してみたのですが、うまくコードが調べられませんでしたので、もう一度試してみたいと思います。また確認できたら補足させて頂きますので、よろしければアドバイスお願い致します。

simple-t
質問者

補足

分かりにくい質問にいろいろとお答え頂きありがとうございましたM(__)M 取り合えずchr(13)+chr(10)をchr(10)に変換し、あと半角のカタカナも文字化けの原因になっているような感じだったので、VBAで半角を全角に変換してからエクセルにエクスポートするという処理で何とか今の所は対応が出来たような感じです。ありがとうございました。

その他の回答 (2)

  • jmh
  • ベストアンサー率23% (71/304)
回答No.2

こんばんは。 エクセルの「・」が何者(文字コード?)なのかを教えてください。そのときの Tyosetu() の戻りを Asc() に通して教えてください。

simple-t
質問者

補足

返事が遅くなり大変申し訳ございませんM(vv)M 「・」の正体はアクセスのフォーム内に作成したテキストボックス内での改行部分のコードだと思います。「vbCrLf」を「Chr(10)」にTyosetu()で変更しエクセルのセル内で表示の際に改行するようにしています。これは過去の質問でアクセスでの改行のコードとエクセルでの改行コードが違うとの事だったので変更しています。 Tyosetu = Replace(In_Data, vbCrLf, Chr(10)) で文章内の改行のコード部分だけを置き換えて変数に代入しエクセルにエクスポートするという感じです。Asc()に通してのコードは今確認中です。すいません。

noname#25358
noname#25358
回答No.1

 Windows 系のOSは全て vbCrLf で統一されています。  どうしても CR もしくは LF でなければ認識しないとしたら、それはOSレベルではなく、アプリケーションレベルでの差です。

simple-t
質問者

お礼

回答ありがとうございました。問題は改行だけではなく、半角文字等も影響していたようです。

関連するQ&A

専門家に質問してみよう