dポイントプレゼントキャンペーン実施中!

Access2013 のVBAで、
Dim Syohin as string
Syohin = "........"

このように Syohin に、ある説明文を代入しています。

あるボタンを押せば、単純にこの説明文をデスクトップ上に「setsumei.txt」として
保存するようにしたいのですが、うまくいきません。

PC上は
C → ユーザー → trend → デスクトップ となっているので、

参照設定で Microsoft Scripting Runtime にチェックを入れて、、、

Dim fso as New FileSystemObject
Dim ts as textstream

Set ts = fso.OpenTextFile("C:\ユーザー\trend\デスクトップ\(保存する任意の名前).txt", ForWriting, True, TristateFalse)
ts.writeline setsumei

ts.close
set ts = nothing
set fso = nothing



とするのですが、「パスが見つかりません」のエラーが出ます。
とこが間違いなのでしょうか

「Access VBA で txt文をデス」の質問画像

A 回答 (4件)


FilePath = DesktopPath & "\" & KK

Set ts = fso.CreateTextFile(FilePath, True)

です。
    • good
    • 0
この回答へのお礼

大変お手数をおかけしました。ありがとうございました。
うまくいきました。助かりました。

お礼日時:2018/05/04 13:46

OpenTextFileとCreateTextFileではパラメータが違います。


CreateTextFile(filename[, overwrite[, unicode]])
で、filenameは必須、すでに存在するファイルに上書きする場合はoverwriteにtrueを指定します。
unicodeは気にしなくてもいいと思います。
あと、FilePath = DesktopPath & KKは、FilePath = DesktopPath & "\" & KKとする必要があるのではないですか。
    • good
    • 0
この回答へのお礼

何度もすみません。
CreateTextFile が全くわからないものですから・・・

CreateTextFile(filename[, overwrite[, unicode]])
は私の例にあてはめた場合、具体的にどう書けばよいですか?
filename は FilePath でなく、"\" & KK ですか??
"[" や"]" も使えないですよね。
ごめんなさい、全く?です。

先ほどの私の文に照らして、具体的に書いていただけませんか?
overwrite は true でお願いします。
すみません・・・

お礼日時:2018/05/04 12:10

やりたいのはテキストファイルの新規作成ですよね。


OpenTextFileは既存のファイルを開くものなので、ファイルがなければエラーになります。
新規作成の場合は、CreateTextFileを使ってください。
    • good
    • 0
この回答へのお礼

ありがとうございます。「CreateTextFile」に変えて下記のようにしました。
すると
「引数の数が一致していません。または不正なプロパティを指定しています」
と出て、下記「’書き込む部分」のところでエラーになります。

もう一つ質問ですが、txtファイルでなく html文でも同じことをしたい場合、
単に txt を html に変えるだけでよいですか?


Dim WSH As Object
Dim fso As New FileSystemObject
Dim ts As TextStream
Dim KK As String


'保存する名前
KK = "Test01.txt"



Set WSH = CreateObject("Wscript.Shell")

Dim DesktopPath As String
Dim FilePath As String
DesktopPath = WSH.SpecialFolders("Desktop")
FilePath = DesktopPath & KK

'書き込む部分
Set ts = fso.CreateTextFile(FilePath, ForWriting, True, TristateFalse)


'最後の部分
Set WSH = Nothing

お礼日時:2018/05/04 10:17

"ユーザー"→"Users"


でどうでしょうか。
あるいは、WSHを利用して、

コードの最初の部分に追加
Dim WSH As Object
Set WSH = CreateObject("Wscript.Shell")

Dim DesktopPath As String
Dim FilePath As String
DesktopPath = WSH.SpecialFolders("Desktop")
FilePath = DesktopPath & (保存する任意の名前).txt

書き込む部分
Set ts = fso.OpenTextFile(FilePath, ForWriting, True, TristateFalse)


最後の部分
Set WSH = Nothing
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!