マイドキュメントにフォルダがなければ作るマクロ(その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モジュールはめっちゃ便利で、
一回作っちゃえば下準備なしでいつでもコマンドプロンプトを動かせる。
てな感じで以下ソース。
別バージョンを思いついた。
コマンドプロンプトでのフォルダの作り方をググったらこんなページが出てきた。
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