LibreOffice Calc Basic - ワークシート選択フォームを作る方法
◆概要
このページは、Libre Officeのマクロでワークシート選択フォームを作る方法について記載しています。
まず、フォームを作成します。適当な大きさのフォームにリストボックスとコマンドボタンを貼り付けます。
フォームは、LibreOfficeのメニューから[ツール]-[マクロ]-[ダイアログの管理]で作成できます。
ここでは、ボタンの名前をbtnClose、タイトルはCloseとしました。
次に標準モジュールに次のコードを記述します。
REM ***** BASIC ***** Public oDialog as object Sub ShowDiarog dim oSheets as object DialogLibraries.LoadLibrary("Standard") oDialog=CreateUnoDialog(DialogLibraries.Standard.Dialog1) oDialog.Title="ワークシート一覧" oSheets = ThisComponent.Sheets For i = 0 to oSheets.getCount() - 1 rem すべてのワークシートに対して繰り返す If oSheets(i).Name<> "data" Then rem dataというワークシートは一覧に表示しない oDialog.getControl("ListBox1").AddItem(oSheets(i).Name,i) End If Next i oDialog.Execute() oDialog.Dispose() End Sub
Sub CloseDialog oDialog.endExecute() End Sub
フォームの管理画面に戻って、btnCloseのイベント[実行時]にマクロ「CloseDialog」を割り当てます。
次にリストボックスでシートが選択された時のマクロを標準モジュールに作成します。コードは以下の通りです。
Sub SelectWorksheet Dim Index As Integer Dim Buf As String Dim sUrl As String oDoc = ThisComponent oController = oDoc.getCurrentController() oSheets = oDoc.getSheets() sUrl = oDialog.getControl("ListBox1").getSelectedItem() If Not (sUrl = "") Then oController.setActiveSheet(oSheets.getByName(sUrl)) End If End Sub
フォームの管理画面に戻って、listboxのイベント[マウスボタンを押した時]にマクロ「SelectWorksheet」を割り当てます。
◆実行結果
ShowDiarogにカーソルを置き、F5キーを押下してください。ダイアログボックスが表示されます。
◆サンプルのダウンロード
lboffice031.zip"(11KB)
▼ページトップへ