|
▼青 さん:
こんにちは。
>C:\tmp\差分.csvにファイル1の該当する行を表示したいのですが、
テキストへの出力は、「Outeput」で開いて「Print」か「Write」で行います。
(両者の違いについてはヘルプで確認してみて下さい。)
Sub テキストへ出力()
Dim strMoji As String
Dim File3 As String
File3 = "C:\Tmp\差分.csv"
strMoji = "結果ですよ"
Open File3 For Output As #3
Print #3, strMoji
Close #3
End Sub
さて、ご提示されたコードですが…。
>Res = MsgBox("比較用の2つのファイルを選びます。 " & vbCr & _
>"続行しますか?", vbYesNo + vbQuestion, "確認")
せっかく vbYesNo でメッセージボックスを出しているのに、
選んだあとの分岐がないです。
>
>FName1 = Application.GetOpenFilename(FileFilter:="CSVファイル (*.csv), *.csv")
>
>MsgBox FName1 & "を選択しました。 " & vbCr & _
>"比較対象するファイルを選択してください。 ", , "対象選択"
FName1 が キャンセルされた場合の処理も必要ですよね。
>n = n + 1
n行目が不一致、としないのであれば n の値は必要ないですね。
あと初期化されていないので、n が 0 からカウントされている事になります。
>If EOF(1) And EOF(2) Then
>MsgBox "2つのデータ一致確認。", , "終了"
>Else
>MsgBox "2つのデータ不一致。", , "終了"
>End If
このへんは好みの問題になるのでしょうが、処理の流れが不自然ですね。
Exit Do させて後から EOF(1) と EOF(2) であったかを調べるよりは
ループ開始
↓
不一致判定 → 不一致 → 不一致処理 → 脱ループ
↓
終了判定 → 正常終了 → 正常終了処理 → 脱ループ
↓
ループに戻る
のような処理が良いと思われます。
|
|