人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelVBAについて教えてください。

Dim path As String
Dim FullPath As String
Dim FN As String
Dim intFF As Integer
Dim str As String

Path ="C:\"
FN ="abc.txt"
intFF = FreeFile
FullPath = Path & "\" & FN

変数処理。

str = "私は" & Hold1 & vbCrLf
str = str & "彼は" & Hold2 & vbCrLf
......

Open FullPath For Output As #intFF
Print #intFF, str
Close #intFF

とやると、Open FullPathのところで、実行時エラー 76、パスが見つかりませんと表示されてしまいます。

処理の流れはA1?A10まで値がはいっています。この値を変数に入れて、ループで処理。文章を作り出したいと思っています。

例えば、Dim Hold1 As String,Hold2 As String....とあります。Hold1にはA1の値、Hold2にはA2の値...とはいっています。

やりたいことは、Excel VBAでテキストファイルを新規につくり、そこへ書き出し、保存したいです。ファイル名はFullPathで指定したファイル名を新規で作り出し、それに対して書き出し、保存をしたいです。
何が間違っているのでこのようなエラーが表示されてしまうのでしょうか?回避方法がありましたらご教授お願いいたします。またテキストに書き出した時に改行されるようにvbCrLfをつけていますが、これは正しい処理でしょうか?

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:A1 A10 ABC AS Excel
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● Mook
●60ポイント ベストアンサー

Path の末尾に ¥ がありますから、 FullPath を生成するときに ¥ を入れると

2重になっています(ただしそれでも動作するとは思いますが)。

Open のまえに

 MsgBox FullPath & "を開きます。"

のようなチェックを入れてみてはどうでしょうか。

こちらでは上記コードで正常に新規ファイルが作成されました。


改行に関しては Print 毎に改行が入りますが、一度の Print で複数行出力したい場合は

今回のような書き方で OK です。

str = "私は" & Hold1 & vbCrLf
str = str & "彼は" & Hold2 & vbCrLf
str = str & "彼女は" & Hold3
Print #intFF, str

(最後は改行なし)と


Print #intFF, "私は" & Hold1
Print #intFF, "彼は" & Hold2
Print #intFF, "彼女は" & Hold3

は同じ結果になります。


なのでセルに対して処理をするのであれば、ファイルを開いた後に

 Dim Hold(10) As String

 Hold(1) = "...."
 :
 Hold(10) = "...."

 Open FullPath For Output As #intFF
 For i=1 To 10
 Print #intFF, Hold(i) & Cells(i,"A").Value
 Next
 Close #intFF

のようにやるのも手です。

(ループにする必要がなければ、都度出力してもよいかと思います。)

◎質問者からの返答

ご回答ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ