月別アーカイブ: 2014年2月

Libre:040 ウインドウ枠を固定する

データが増えてくるとウインドウを固定を利用して、

見出しを固定しておくと便利ですね。

 

Sub ksWindowFix()

Dim controller as Object
Dim objCol as Long
Dim objRow as Long

controller = ThisComponent.CurrentController

objCol = 5
objRow = 6
controller.FreezeAtPosition(objCol , objRow)

End Sub

 

Libre:037 CSV形式で保存する

ここでは、ホームディレクトリ下でtest.csvという

ファイル名で保存しています。

 

Sub ksSaveAsCSV

dim objSheet as object
dim args(1) As New com.sun.star.beans.PropertyValue

objSheet = ThisComponent.getSheets().getByIndex(0)
ThisComponent.CurrentController.setActiveSheet (objSheet)

args(0).Name = “FilterName”
args(0).Value = “Text – txt – csv (StarCalc)”
args(1).Name = “FilterFlags”
args(1).Value = “UTF8”

ThisComponent.storeToURL(“file:///Users/username/test.csv”, args())

End Sub

Libre:036 ブック保存時にファイルの形式を指定する

ダイアログを表示するところが面倒です。

 

sub ksSaveByDialog

dim objFilePicker As Object
dim title as string
dim dialog As Integer
dim saveFiles() As String
dim saveFilename As String

‘dialogs.FilePicker でダイアログが使える
objFilePicker = createUnoService(“com.sun.star.ui.dialogs.FilePicker”)

‘ 保存するダイアログの場合
objFilePicker.initialize(Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE))

‘ ダイアログの初期化
title = ThisComponent.getTitle()
objFilePicker.Title = “CSVデータ保存”
objFilePicker.appendFilter( “CSVファイル (*.csv)”, “*.csv” )
objFilePicker.setCurrentFilter( “CSVファイル (*.csv)” )
objFilePicker.setDefaultName(title)

‘ダイアログ表示
dialog = objFilePicker.execute()

‘ 開く(OK)が押された場合は、1が返される
IF dialog <> 1 Then

Exit Sub

END IF

saveFiles() = objFilePicker.getFiles()
saveFilename = saveFiles(0)

End Sub

Libre:034 ブック名を指定して保存する

activeなブックを名前を変えて保存する場合は、

ThisComponentのstoreAsURLで可能となります。

strUrl = ConvertToUrl(“/Users/username/Desktop/testNewName.ods”)
ThisComponent.storeAsURL(strUrl, Array())

 

ファイルパスを全て書かないといけないところが

面倒です。

ファイル名だけを変更したいので、

パスとファイル名に分割しました。

 

sub ksSaveAs

dim path_url as string
dim title as string
dim path_dir_url as string
dim newFileName as string
dim newPath as string

path_url = ThisComponent.getLocation()
title = ThisComponent.getTitle()
path_dir_url = Left(path_url, Len(path_url) – Len(title))

newFileName = “testNewSheets”
newPath = path_dir_url & newFileName
msgbox newPath

ThisComponent.storeAsURL(newPath, Array())

end sub

Libre:032 上書き保存

上書き保存はStoreを使います。

ブックに変更があるかは、isModifiedで判断できます。

 

Sub ksSave()

If ThisComponent.isModified Then
   

   Msgbox(“ドキュメントは変更されているので、上書き保存します”)
   ThisComponent.store()


else


   Msgbox(“ドキュメントは変更されていません”)


End If

End Sub