- ベストアンサー
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すると場所が表示されるので 何が足りないのかわからなくて煮詰まってしまいました。
- みんなの回答 (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
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
#こんな感じでできることはできますが。。。 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)
お礼
ご回答ありがとうございます。 即時回答のおかげで助かりました。
お礼
ご回答ありがとうございます。 詳細な説明内容だったので、BAを付けさせていただきました。