- ベストアンサー
文字コードを指定すると文字化けする理由は?
- HTMLのソースが入ったテキストデータをエクセルに書き出す際、文字コードの指定がうまくいかず文字化けが発生する場合があります。
- ソースと同じ文字コードを指定しているにも関わらずエラーが発生する理由は、テキストデータを書き出す際にエクセルが文字コードを正しく判断できないことが原因です。
- 特に、異なる文字コードが混在している場合や、文字コードの自動判別ができない場合に問題が発生します。文字化けを避けるためには、適切な文字コードを指定するか、文字コードの変換を行う必要があります。
- みんなの回答 (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には、配列が格納されていなのでは?
その他の回答 (1)
- WindFaller
- ベストアンサー率57% (465/803)
今は、試したわけではないけれども、パッとみた感じでは、それで出来るのかなっていう感触があります。 入(ソース)と出(デスティネーション)を設けなければしょうがないような気がしますね。 言い換えると、 >Dim adoSt As New ADODB.Stream > With adoSt これでは、「入」だけしかありません。 実際に、コードを書いてみないと、こちらもはっきりしませんが、euc-jp を、shift- jisなどに直すのではないでしょうか?
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。