カテゴリー別アーカイブ: Libre Basic

Libre:077 セルの表示形式の設定

NumberFormatには、インデックス番号を指定します。

インデックス番号の調べ方はここを参考に。

インデックス番号の一部はここにあります。

 

Sub ksCalcNumberFormat
Dim oDoc as Object
Dim objSheet as Object
Dim cellRange as Object

objSheet = ThisComponent.getSheets().getByIndex(0)
cellRange = objSheet.getCellRangeByPosition(0, 0, 5, 5)

cellRange.NumberFormat = 5103 < — これ!インデックス番号

 

End Sub

Libre:076 定義済み書式を設定する

autoFormatメソッドで設定可能のようですが、

さらに詳しく調べる必要がありそうです。

 

Sub ksCalcAutoFormat
Dim oDoc as Object
Dim objSheet as Object
Dim cellRange as Object

objSheet = ThisComponent.getSheets().getByIndex(0)
cellRange = objSheet.getCellRangeByPosition(0, 0, 5, 5)
cellRange.autoFormat(“3D”)

End Sub

Libre:075 指定セル範囲のフォントを変更する

選択範囲のフォント変更はCharFontName(西洋)とCharFontNameAsian(東洋)

の2種類があります。

これを使い分けないと、うまくフォント変更ができません。

日本語のフォントは東洋フォントを変更しないと反映されないということです。

 

Sub ksChangeFont
Dim objSheet as Object
Dim objCellRange as Object

objSheet=ThisComponent.sheets(0)
objCellRange=objSheet.getCellRangeByPosition(0,0,2,2)
objCellRange.CharFontName = “Arial Black”
objCellRange.CharFontNameAsian = “メイリオ”
end sub

Libre:071 選択セルのデータをクリアする

セルのクリアはClearContentsを用いる。

 

sub ksCellClear

dim cell as object
cell = ThisComponent.CurrentSelection
cell.clearContents(511)

end sub

 

数字にはクリアしたい内容に応じて、下記の値を指定する。

1 : 数値をクリアする場合
2 : 日付や時刻をクリアする場合
4 : 文字列をクリアする場合
8 : セルのコメントをクリアする場合
16 : 関数 (数式) をクリアする場合
32 : セルに直接指定された書式をクリアする場合
64 : セルに間接的に指定された書式をクリアする場合
128 : セルに配置された描画オブジェクトをクリアする場合
256 : セル内の一部のテキストに対してのみ指定された書式をクリア
する場合

全てクリアするには1+2+ … +256 = 511を入れれば良い。

Libre:070 セルの書式をコピーする

結構難しそう。

スマートな方法はなさそうだ。

 

 

リンク先に丁寧な説明があります。

また、独自の関数も有ります。

便利そうです。

 

こういう方法もあります。

これは、ここから持ってきました。

Sub CopyPaste
Dim oFrame as object
Dim dispatcher as object

oFrame = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

dispatcher.executeDispatch(oFrame, “.uno:Copy”, “”, 0, Array())

Dim oArgs2(0) as new com.sun.star.beans.PropertyValue
oArgs2(0).Name = “ToPoint”
oArgs2(0).Value = “$B$5”
dispatcher.executeDispatch(oFrame, “.uno:GoToCell”, “”, 0, oArgs2())

Dim oArgs3(5) as new com.sun.star.beans.PropertyValue
oArgs3(0).Name = “Flags”
oArgs3(0).Value = “SDFNT” ‘ ← 下記” Flag Value “参照
oArgs3(1).Name = “FormulaCommand”
oArgs3(1).Value = 0
oArgs3(2).Name = “SkipEmptyCells”
oArgs3(2).Value = false
oArgs3(3).Name = “Transpose”
oArgs3(3).Value = false
oArgs3(4).Name = “AsLink”
oArgs3(4).Value = false
oArgs3(5).Name = “MoveMode”
oArgs3(5).Value = 4
dispatcher.executeDispatch(oFrame, “.uno:InsertContents”, “”, 0, oArgs3())

msgbox “Success”
End Sub

‘ [ Flag Value ]
‘ S : String ( テキスト )
‘ V : Value ( 値 )
‘ D : Date ( 日付 )
‘ F : Formula ( 式 )
‘ N : Note ( コメント )
‘ T : Format ( 書式 )
‘ 空白 : Object ( オブジェクト )
‘ A : 全て