2012年4月9日月曜日

[ExcelVBA] 特別なパスの取得



実行ファイルと同梱しているファイルにアクセスする際に
実行ファイルのパスをベースに目的のファイル・フォルダパスを
作成したりするのに使います。
Option Explicit

Sub SampleCode()
    'マクロを実行しているファイルのフルパス
    Debug.Print ThisWorkbook.FullName
    

    'マクロを実行しているファイルのフォルダーパス
    Debug.Print ThisWorkbook.Path
    

    'マクロを実行しているファイル名
    Debug.Print ThisWorkbook.Name



複数の実行ファイルから共通して利用するファイル等は
デスクトップやマイドキュメントに配置すると便利です。
そういった場合のパスの取得は以下の通りです。
Option Explicit
    Dim WSH As Object
    Set WSH = CreateObject("WScript.Shell")
    
    
    'デスクトップパス
    Debug.Print WSH.SpecialFolders("Desktop")
        
    
    'マイドキュメントパス
    Debug.Print WSH.SpecialFolders("MyDocuments")
    
    
    Set WSH = Nothing
End Sub


データを蓄積するタイプの時、スタートアップにスクリプトを登録して
自動更新をしたいといったことがあります。そういう時は、スタートアップパスに
スクリプトをコピーまたはショートカットで指定することになります。
その際のパス取得は以下のとおりです。
Option Explicit
    Dim WSH As Object
    Set WSH = CreateObject("WScript.Shell")
       
    
    'スタートアップパス
    Debug.Print WSH.SpecialFolders("StartUp")
    
    Set WSH = Nothing
End Sub


0 件のコメント: