• ベストアンサー

VBA・WSHでのspecialfolders

WSHでの知識をご教授ください。 ・実行場所を選ばずデスクトップにテキストを作成したいと思い SET objpath =SpecialFolders("Desktop")でobjpathに現行ユーザの デスクトップの場所を取得して Set objFS = CreateObject("Scripting.FileSystemObject") objFS.CreateFolder objpath\newfolderでフォルダを作成して set fo = objFS.CreateTextFile("newfolder\sample.txt",true) テキストを作成 という動きをさせたいのですが objpathをechoすると場所が表示されるので 何が足りないのかわからなくて煮詰まってしまいました。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセルVBAの標準モジュールに Sub test() Dim objWShell As Object 'WScript.Shell Dim strDesktopPath As String 'デスクトップの場所 'Windows Script Hostのオブジェクトを作成する Set objWShell = CreateObject("WScript.Shell") 'スペシャルフォルダ(特殊フォルダ)の場所を返す strDesktopPath = objWShell.SpecialFolders("Desktop") '確認メッセージの表示 MsgBox "DesktopのPathは[" & strDesktopPath & "]です" Set objFS = CreateObject("Scripting.FileSystemObject") newfolder = "例テキストF" objFS.CreateFolder strDesktopPath & "\" & newfolder 'でフォルダを作成して Set fo = objFS.CreateTextFile(strDesktopPath & "\" & newfolder & "\sample.txt", True) End Sub と入れて実行する。 デスクトップに「例テキストF」というフォルダが出来て、その中に sample.txtというファイルが出来ました。 ¥の入れ方の問題と、変数とリレラルを””で囲っているのが問題かなと思った。 ーー 参考 http://www.ken3.org/vba/backno/vba114.html

tororo119
質問者

お礼

ご回答ありがとうございます。 詳細な説明内容だったので、BAを付けさせていただきました。

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

#こんな感じでできることはできますが。。。 Set objFS = CreateObject("Scripting.FileSystemObject") Set ws = CreateObject("WScript.Shell") objpath = ws.SpecialFolders("Desktop") objFS.CreateFolder objpath & "\newfolder" Set fo = objFS.CreateTextFile(objpath & "\newfolder\sample.txt", True)

tororo119
質問者

お礼

ご回答ありがとうございます。 即時回答のおかげで助かりました。

関連するQ&A