#056 | Windowsのテンポラリフォルダのパスを取得するには? | VBA、API | |
Accessのテーブルからテキストファイルなどを出力して、ある処理が終わったらそのファイルは不要となるような場合、あくまでもそのファイルは作業用の一時的なファイルなので、よくある "~abcd.tmp" のようなファイル名でWindowsのテンポラリファイル用のフォルダに書き出したいということがあると思います。そのような場合、WindowsAPIの「GetTempPath」関数を使うことによってにWindowsのテンポラリフォルダのパスを取得することができます。 まず標準モジュールに次のコードを記述します。"Declare"の前に"Private"を付けることによってフォームのモジュールにも記述できます。 Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long サンプルプロシージャ: Function GetTemporaryPath() As String
Const MAX_PATH = 260 'フォルダ名の長さの最大値 Dim strBuffer As String * MAX_PATH 'フォルダ名を受け取るバッファ Dim lngRet As Long 'API関数を呼び出し lngRet = GetTempPath(Len(strBuffer), strBuffer) If lngRet > 0 Then '正常に取得されたら返り値の後続の Null を取り除いて返します '("C:\WINDOWS\TEMP\" などが返る) GetTemporaryPath = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1) Else '取得できなければ長さゼロの文字列を返します GetTemporaryPath = "" End If End Function |
|||
|
Copyright © T'sWare All rights reserved |