• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字コードを指定すると文字化けする理由は?)

文字コードを指定すると文字化けする理由は?

このQ&Aのポイント
  • HTMLのソースが入ったテキストデータをエクセルに書き出す際、文字コードの指定がうまくいかず文字化けが発生する場合があります。
  • ソースと同じ文字コードを指定しているにも関わらずエラーが発生する理由は、テキストデータを書き出す際にエクセルが文字コードを正しく判断できないことが原因です。
  • 特に、異なる文字コードが混在している場合や、文字コードの自動判別ができない場合に問題が発生します。文字化けを避けるためには、適切な文字コードを指定するか、文字コードの変換を行う必要があります。

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

  • ベストアンサー
回答No.2

#1の回答者です。返事は付きませんでしたが、こんな具合でどうでしょうか? '// Sub Sample1()   Dim SRC As ADODB.Stream   Dim DST As ADODB.Stream   Dim FileName As String   Dim strList As String   Dim strSplit As Variant   Dim i As Long   Dim j As Long      FileName = "C:\test.html"   Set SRC = New ADODB.Stream   With SRC     .Open     .Charset = "EUC-JP"     .Type = adTypeText     .LoadFromFile FileName     .Position = 0   End With   Set DST = New ADODB.Stream   With DST     .Open     .Charset = "Shift_JIS"     .Type = adTypeText   End With   SRC.CopyTo DST   DST.Position = 0   Workbooks.Add   With DST   i = 1     Do While Not (.EOS)       strList = .ReadText(adReadLine)       strSplit = Split(strList, ",")       For j = LBound(strSplit) To UBound(strSplit)         ActiveSheet.Cells(i, j + 1) = strSplit(j)       Next       i = i + 1     Loop   End With   SRC.Close   DST.Close End Sub >Cells(i, j + 1) = strSplit(j) >の部分で、エラーになります。 strSplitには、配列が格納されていなのでは?

eccqpjphjbqav
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

回答No.1

今は、試したわけではないけれども、パッとみた感じでは、それで出来るのかなっていう感触があります。 入(ソース)と出(デスティネーション)を設けなければしょうがないような気がしますね。 言い換えると、 >Dim adoSt As New ADODB.Stream >  With adoSt これでは、「入」だけしかありません。 実際に、コードを書いてみないと、こちらもはっきりしませんが、euc-jp を、shift- jisなどに直すのではないでしょうか?

eccqpjphjbqav
質問者

お礼

回答ありがとうございました。

関連するQ&A

専門家に質問してみよう