忍者ブログ

マイドキュメントにフォルダがなければ作るマクロ(その2)

2021年10月12日
前回投稿した最下層のフォルダを作るマクロについて
別バージョンを思いついた。

コマンドプロンプトでのフォルダの作り方をググったらこんなページが出てきた。

https://qiita.com/arc-one/items/756dcf5332bf652f702c

コマンドプロンプトでフォルダのドラッグドロップなんてできるね!!


注目点はそこじゃなくて、ディレクトリを作るコマンドに
「-p」のオプションを付ければ一気に作れるとのこと。

前にテキストの文字列をコマンドプロンプトで実行するマクロを作ったので合体!

作ったといってもoffice TANAKA様のパクリでしたw

http://officetanaka.net/excel/vba/tips/tips27.htm


この★ExcuteCommand_cmdモジュールはめっちゃ便利で、
一回作っちゃえば下準備なしでいつでもコマンドプロンプトを動かせる。

てな感じで以下ソース。





Option Explicit

'C:\Users\oiran\Documents\VBA\LOG\SysLog

Sub test()
Dim pPath As String: pPath = ★MyDocumentのパスを取得()
Dim Path As String: Path = pPath & "\VBA\LOG\SysLog"
Debug.Print Path
Call ★フォルダがなければ作るcmd(Path)

End Sub

Function ★MyDocumentのパスを取得()
With CreateObject("WScript.Shell")
★MyDocumentのパスを取得 = .SpecialFolders("MyDocuments") 'MyDocuments, DeskTop,
End With
End Function

Function ★DeskTopのパスを取得()
With CreateObject("WScript.Shell")
★DeskTopのパスを取得 = .SpecialFolders("DeskTop") 'MyDocuments, DeskTop,
End With
End Function

Sub ★フォルダがなければ作るcmd(Path As String)
Dim sCmd As String
sCmd = "mkdir -p " & Path
Call ★ExcuteCommand_cmd(sCmd)
End Sub

Sub ★ExcuteCommand_cmd(sCmd As String)

Dim WSH, wExec, Result As String
Set WSH = CreateObject("WScript.Shell") ''(1)WSHへの参照を作ります

Set wExec = WSH.Exec("%ComSpec% /c " & sCmd) ''(3)Execメソッドを実行
Do While wExec.Status = 0 ''(4)ループで完了を待ち
DoEvents
Loop

Set wExec = Nothing
Set WSH = Nothing
End Sub





PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字