#23のパスワードによるシートの保護を参照のこと
月別アーカイブ: 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:039 同一ブック数を表示する
038と同様に、複数のブックを表示することは
できない、と思う。
Libre:038 新しいウインドウで開く
Excelの場合、同一のブックを複数開くことが可能ですが、
Libeの場合はできそうにありません。
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:035 全てのブックを保存してLibreを終了させる
ごめんなさい。
これはわかりません。
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:033 ブックに変更があった場合のみ上書き保存
前回の032にコードを載せてしまいました。
Libre:032 上書き保存
上書き保存はStoreを使います。
ブックに変更があるかは、isModifiedで判断できます。
Sub ksSave()
If ThisComponent.isModified Then
Msgbox(“ドキュメントは変更されているので、上書き保存します”)
ThisComponent.store()
else
Msgbox(“ドキュメントは変更されていません”)
End If
End Sub