2012年4月9日月曜日

[ExcelVBA] 特別なパスの取得



実行ファイルと同梱しているファイルにアクセスする際に
実行ファイルのパスをベースに目的のファイル・フォルダパスを
作成したりするのに使います。
  1. Option Explicit  
  2.   
  3. Sub SampleCode()  
  4.     'マクロを実行しているファイルのフルパス  
  5.     Debug.Print ThisWorkbook.FullName  
  6.       
  7.   
  8.     'マクロを実行しているファイルのフォルダーパス  
  9.     Debug.Print ThisWorkbook.Path  
  10.       
  11.   
  12.     'マクロを実行しているファイル名  
  13.     Debug.Print ThisWorkbook.Name  



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


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


0 件のコメント: