ディレクトリ選択ダイアログを表示する

Dim folderPicker As Object
Dim isAccept As Integer
Dim folders()
Dim folderUrl as String
Dim folderName as String
folderPicker = createUnoService("com.sun.star.ui.dialogs.FolderPicker")
folderPicker.setTitle ("ディレクトリの選択")
folderPicker.setDescription("ディレクトリを選択してください。")
folderPicker.setDisplayDirectory("C:\Users\Test\Desktop")
isAccept = folderPicker.execute()
If isAccept = 1 Then
    folders() = folderPicker.getDirectory()
    folderUrl = folders(0)
    folderName = ConvertFromURL(folderUrl)
    MsgBox(folderName)
Else
    folderPicker.cancel()
End If

LibreOffice CalcのStyleを変更する

Dim styleFamilies As Object
Dim styles As Object
Dim style As Object
styleFamilies = ThisComponent.StyleFamilies
styles = styleFamilies.getByName("PageStyles")
style = styles.getByName("標準")
style.HeaderIsOn = false 'ヘッダーOFF
style.FooterIsOn = false 'フッターOFF
style.CenterHorizontally = true '横方向中央配置
style.Height = 25000 '用紙高さ250mm
style.Width = 17600 '用紙幅176mm
style.scaleToPages = 1 '1ページに収める

主なプロパティ

プロパティ
CenterHorizontally boolean
CenterVertically boolean
PrintAnnotations boolean
PrintGrid boolean
PrintHeaders boolean
PrintCharts boolean
PrintObjects boolean
PrintDrawing boolean
PrintFormulas boolean
PrintZeroValues boolean
PrintDownFirst boolean
LeftPageHeaderContent XHeaderFooterContent
LeftPageFooterContent XHeaderFooterContent
RightPageHeaderContent XHeaderFooterContent
RightPageFooterContent XHeaderFooterContent
FirstPageNumber short
PageScale short
ScaleToPages short
ScaleToPagesX short
ScaleToPagesY short
BackColor ::com::sun::star::util::Color
BackGraphicURL string
BackGraphicFilter string
BackGraphicLocation GraphicLocation
BackTransparent boolean
LeftMargin long
RightMargin long
TopMargin long
BottomMargin long
LeftBorder ::com::sun::star::table::BorderLine
RightBorder ::com::sun::star::table::BorderLine
TopBorder ::com::sun::star::table::BorderLine
BottomBorder ::com::sun::star::table::BorderLine
LeftBorderDistance long
RightBorderDistance long
TopBorderDistance long
BottomBorderDistance long
ShadowFormat ::com::sun::star::table::ShadowFormat
IsLandscape boolean
NumberingType short
PageStyleLayout PageStyleLayout
PrinterPaperTray string
RegisterModeActive boolean
RegisterParagraphStyle string
Size ::com::sun::star::awt::Size
Width long
Height long
TextColumns ::com::sun::star::text::XTextColumns
UserDefinedAttributes ::com::sun::star::container::XNameContainer
HeaderBackColor [ maybevoid ] ::com::sun::star::util::Color
HeaderBackGraphicURL [ maybevoid ] string
HeaderBackGraphicFilter [ maybevoid ] string
HeaderBackGraphicLocation [ maybevoid ] GraphicLocation
HeaderLeftMargin [ maybevoid ] long
HeaderRightMargin [ maybevoid ] long
HeaderBackTransparent [ maybevoid ] boolean
HeaderLeftBorder [ maybevoid ] ::com::sun::star::table::BorderLine
HeaderRightBorder [ maybevoid ] ::com::sun::star::table::BorderLine
HeaderTopBorder [ maybevoid ] ::com::sun::star::table::BorderLine
HeaderBottomBorder [ maybevoid ] ::com::sun::star::table::BorderLine
HeaderLeftBorderDistance [ maybevoid ] long
HeaderRightBorderDistance [ maybevoid ] long
HeaderTopBorderDistance [ maybevoid ] long
HeaderBottomBorderDistance [ maybevoid ] long
HeaderShadowFormat [ maybevoid ] ::com::sun::star::table::ShadowFormat
HeaderBodyDistance [ maybevoid ] long
HeaderIsShared [ maybevoid ] boolean
HeaderHeight [ maybevoid ] long
HeaderIsDynamicHeight [ maybevoid ] boolean
HeaderIsOn boolean
HeaderText [ maybevoid ] ::com::sun::star::text::XText
HeaderTextLeft [ maybevoid ] ::com::sun::star::text::XText
HeaderTextRight [ maybevoid ] ::com::sun::star::text::XText
FooterBackColor [ maybevoid ] ::com::sun::star::util::Color
FooterBackGraphicURL [ maybevoid ] string
FooterBackGraphicFilter [ maybevoid ] string
FooterBackGraphicLocation [ maybevoid ] GraphicLocation
FooterLeftMargin [ maybevoid ] long
FooterRightMargin [ maybevoid ] long
FooterBackTransparent [ maybevoid ] boolean
FooterLeftBorder [ maybevoid ] ::com::sun::star::table::BorderLine
FooterRightBorder [ maybevoid ] ::com::sun::star::table::BorderLine
FooterTopBorder [ maybevoid ] ::com::sun::star::table::BorderLine
FooterBottomBorder [ maybevoid ] ::com::sun::star::table::BorderLine
FooterLeftBorderDistance [ maybevoid ] long
FooterRightBorderDistance [ maybevoid ] long
FooterTopBorderDistance [ maybevoid ] long
FooterBottomBorderDistance [ maybevoid ] long
FooterShadowFormat [ maybevoid ] ::com::sun::star::table::ShadowFormat
FooterBodyDistance [ maybevoid ] long
FooterIsDynamicHeight [ maybevoid ] boolean
FooterIsShared [ maybevoid ] boolean
FooterHeight [ maybevoid ] long
FooterIsOn boolean
FooterText [ maybevoid ] ::com::sun::star::text::XText
FooterTextLeft [ maybevoid ] ::com::sun::star::text::XText
FooterTextRight [ maybevoid ] ::com::sun::star::text::XText
FootnoteHeight long
FootnoteLineWeight short
FootnoteLineColor ::com::sun::star::util::Color
FootnoteLineRelativeWidth byte
FootnoteLineAdjust short
FootnoteLineTextDistance long
FootnoteLineDistance long
WritingMode short
GridMode short
GridColor ::com::sun::star::util::Color
GridLines short
GridBaseHeight long
GridRubyHeight long
GridRubyBelow boolean
GridPrint boolean
GridDisplay boolean
HeaderDynamicSpacing [ maybevoid ] boolean
FooterDynamicSpacing [ maybevoid ] boolean
BorderDistance long
FooterBorderDistance [ maybevoid ] long
HeaderBorderDistance [ maybevoid ] long

LibreOffice CalcのActiveSheetに対してスタイルを適用する

Dim document As Object
Dim dispatcher As Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Dim args(1) As new com.sun.star.beans.PropertyValue
args(0).Name = "Template"
args(0).Value = "標準"
args(1).Name = "Family"
args(1).Value = 8 'シートに適用する場合は8

dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args())

LibreOffice Calcでシートを他ドキュメントにコピーする

コピー先ドキュメントを指定する場合は args(0).Value の箇所にTitleを指定する。TitleはgetArgs()メソッドで取得できる配列から取得する。※ドキュメントのウインドウタイトルとは異なるので注意

Dim newSheetName As String
newSheetName = "コピー先"
ThisComponent.Sheets.copyByName("コピー元シート名", newSheetName, 0)
ThisComponent.CurrentController.Select(ThisComponent.Sheets.getByName(newSheetName))
Dim document as Object
Dim dispatcher as Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dim args(2) as new com.sun.star.beans.PropertyValue
args(0).Name = "DocName"
args(0).Value = ""
args(1).Name = "Index"
args(1).Value = 32767
args(2).Name = "Copy"
args(2).Value = false
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args())

VB(LibreOffice)のMsgBoxについて

MsgBox("メッセージ", 1, "タイトル") 'メッセージ/Type/タイトルを指定

Type引数

0 OKのみ
1 OK、キャンセル
2 中止、やり直し、取消し
3 はい、いいえ、キャンセル
4 はい、いいえ
5 やり直し、キャンセル
16 ストップアイコンを表示
32 疑問符アイコンを表示
48 エクスクラメーションアイコンを表示
64 インフォメーションアイコン
128 1番目のボタンをデフォルト
256 2番目のボタンをデフォルト
512 3番目のボタンをデフォルト

戻り値

1 OK
2 キャンセル
3 中止
4 やり直し
5 無視
6 はい
7 いいえ

LibreOffice CalcのVBでドキュメントの新規追加・編集・保存・閉じる

Dim document As Object

document = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
'document = StarDesktop.loadComponentFromURL(ConvertToUrl("C:\Users\hiro\Desktop\test.ods"), "_blank", 0, Array())

Dim sheet As Object
sheet = document.CurrentController.ActiveSheet
sheet.getCellByPosition(4, 4).setValue 2

document.storeAsURL(ConvertToUrl("C:\Users\user\Desktop\test.ods"), Array())

document.dispose