【VBA】システムのTEMPフォルダに保存する

Excelを開いたときにWindowsの一時フォルダ(ローカルのTemp)に保存する必要が
あったため考えてみました。
システムの一時保存ファイルはC:\Users\~\Local配下のTempフォルダになります。

Sub templateCopy()
	Dim userID As String
	Dim filename As String
	Dim folderPath As String
	Dim FSO As Object
	Set FSO = CreateObject("Scripting.FileSystemObject")

	userID = Range("A1")
	filename = Range("A2")
	'システムのTempフォルダを取得
	folderPath = FSO.GetSpecialFolder(2) & "\" & userID

	'ユーザーIDのフォルダが存在しなければフォルダを作る
	If Dir(folderPath, vbDirectory) = "" Then
	 MkDir folderPath
	End If

	'別名を付けて保存
	 ThisWorkbook.SaveAs folderPath & "\" & filename
END Sub

まずFileSystemObjectをsetします。

GetSpecialFolderでシステムのTempフォルダを取得できます。
下記のリンクを参考にGetSpecialFolder(2)を設定します。
Office TANAKA - Excel VBA FileSystemObject[GetSpecialFolderメソッド]


保存先のフォルダが存在しないとエラーになるため
フォルダが存在しない場合作成するようにしています。
Dirの第二引数で、フォルダを指定しています。

そしてbookがすでに存在していても上書き保存するため
Save asで上書き保存しています。
保存時はダイヤログも表示されません。

次は削除も考えませんと。