• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで2変数の差分を取る方法  その2)

VBAで2変数の差分を取る方法 その2

このQ&Aのポイント
  • VBAで2変数の差分をシートに入れる方法がわからない
  • fumufumuさんの変数bufをシートに一行ずつ入れる方法を教えてください
  • Splitを使って試したが上手くいかなかった

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

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

>OpenAsTextStreamで開きReadAllで読み込んだbufの中身は配列になっているのでしょうか。 bufは文字列です。(Dim buf As String で宣言してます) >Splitで色々やってみたんですが、旨くいかいなです。 Split(buf, vbCrLf)または、Split(buf, Chr(13) & Chr(10)) で文字列配列にできます。 Windowsのテキスト文章は、CR+LFで改行されます。 MacやLinux(UNIX)では違ったりします。 >この中身をシートに一行ずつ入れるにはどうするのでしょう。 Dim d() As String Dim i As Integer d = Split(buf, vbCrLf) 'bufを改行を区切り文字にして、配列へ For i = 0 To UBound(d) Sheet1.Cells(i + 1, 1) = d(i) '配列は0からで、セルは1から Next '列方向限定ですが、以下の方法もあります Sheet1.Range(Sheet1.Cells(1, 1), Sheet1.Cells(1, UBound(d) + 1)) = d >Dim fso As New FileSystemObjectでは動かなかったので VBAの画面で、[ツール]→[参照設定]で Microsoft Scripting Runtime の参照にチェックを入れて下さい。 CreateObject("Scripting.FileSystemObject")でもいいのですが、後が楽になります。 ちなみに、VBEの入力支援機能は知ってますか? dim i as inと入力した後に、[Ctrl]+[スペース]で候補が出るとか、cellsの後に.(ドット)を押すと候補が出る機能です。 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") では、入力画面ではどんなオブジェクトか分からず、入力支援機能は働きません。 Dim fso As New FileSystemObject と宣言した後の行で、fsoの後に.(ドット)を押すと、入力支援機能が働きます。 特に覚えていない候補が出ると楽です。

stentemp
質問者

お礼

fumufumuさん、たびたびすみません。 改行コードvbCrLfですね。有り難うございます。 Scripting Runtimeにしてなかったです。 >と宣言した後の行で、fsoの後に.(ドット)を押すと、入力支援機能が働きます。 >特に覚えていない候補が出ると楽です。 そういう違いが出るんですか。 いつも一覧が出たり出なかったりするんですよね。 ありがとうございました。

関連するQ&A