2011年4月13日水曜日

アクティブドキュメントを取得する

Calc では Excel の ActiveWorkbook に相当するオブジェクトはない為、
アクティブになっているドキュメントを取得する為には、StarDesktop
オブジェクトの CurrentComponent プロパティを使用する。
  
以下はアクティブドキュメントのファイル名、URL 名 とパス名をメッセージ
ボックスに表示する例である :
  
Sub ExampleGetActiveDoc()
       Dim objDoc As Object
       Dim strFilename As String
       Dim strUrl As String
       Dim strPathname As String
       objDoc = StarDesktop.CurrentComponent
       '
       'Title プロパティでファイル名を取得
       strFilename = objDoc.Title
       '
       'URL プロパティでURL 名を取得 
       strUrl = objDoc.URL
       '
       'ConvertFromUrl 関数でパス名を取得
       strPathname = ConvertFromUrl(strURL)
       '
       Msgbox("ファイル名 : " & strFilename & Chr$(13) & _
                      "URL 名 : " & strUrl & Chr$(13) & _
                      "パス名 : " & strPathname)
End Sub

  
メッセージボックスへの表示内容は下記の通り :
  
  
ThisComponent を閉じたり、上書保存したり、或いは、名前を付けて
保存するサンプルコードを記載したが、アクティブドキュメントについて
も同様に記述できる。例えば、名前を付けてアクティブドキュメントを
保存する例は下記の通り :
  
Sub ExampleSaveAsActiveDoc()
       Dim objDoc As Object
       objDoc = StarDesktop.CurrentComponent
       objDoc.storeAsURL("file:///D:/SampleFolder/sample.ods", Array())
End Sub

  
尚、上記のサンプルコード中にあった ConvertFromUrl 関数とは、URL
形式のファイル名をパス名に変換する関数である。書式は下記の通り :
  
   ConvertFromUrl(UrlFilename)
  
UrlFilename には URL 形式のファイル名を指定する。
戻り値は、ファイルの絶対パスを表す文字列が返される。

0 件のコメント:

コメントを投稿