1 LibreOfficeへの移行
無料のOfficeソフト LibreOffice (リブレオフィス)でも、Microsoft製品のユーザフォームに相当する機能を使えることが分かり、明るい希望が見えてきました。LibreOffice では、フォームに相当する機能は、ダイアログという名前になっています。
限定的とはいえLibreOfficeでもVBAマクロが動くし、フォームと同等の機能があるとなれば、いよいよMicrosof Office とはおさらばです。Microsoft365 は、個人にとってはあまりにも高額過ぎます。
LibreOfficeのダイアログというものが一体どういうものか、そして、それが使えるものなのかを確認するために、ダイアログの新規作成と、作成したダイアログを開く作業を、自分自身で試してみました。

2 ダイアログの作成
次の手順で、Dialog1という名前のダイアログを新規作成しました。
1. LibreOffice Calc を起動
2. メニュー[ツール]-[マクロ]-[ダイアログを管理]
3. Basicマクロの管理画面の「ダイアログ」タブを選択
4. 対象ファイル(未保存の場合は「無題1」)の[Standard]を選択
5. [新規作成]ボタンをクリック
6. 「新しいダイアログ」画面で名前(Dialog1)を確認しOKをクリック
7. [編集]ボタンをクリックして、ボタン等を配置して保存
3 ダイアログを開く操作
作成したダイアログを開くには、そのためのマクロを作成して、実行することになります。
マクロ作成には、LibreOffice Basic というプログラミング言語を使います(VBAは不可)。
LibreOffice Basic の知識はないため、紹介されているコードをそのまま利用させてもらいました。
Sub ShowMyDialog
Dim oDlg As Object
DialogLibraries.LoadLibrary("Standard")
oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDlg.Execute()
oDlg.Dispose()
End Sub
このマクロを、Calcシート上に配置したボタンに割り付けて実行したところ、見事、ダイアログが開いてくれました。
しかも、ダイアログ上のボタンに割り付けたマクロ(例:Msgbox表示)の実行まで、できました。
4 まとめ
Microsoft製品のユーザフォームと、LibreOfficeのダイアログは、名前こそ違いますが、利用方法や動作はほぼ同じと分かりました。また、ダイアログ上に配置するボタンなどのコントロールもほぼ同じようです。
LibreOffice Basic コードの意味等は、完全には理解できていません。内容を理解していないコードの利用は、もちろん自己責任です。それを承知の上でのコードのコピー&ペーストでした。
それでも、想定どおりの動きをしてくれて、満足です。ちょっとした達成感を味わうことができました。
それではまた次の記事で。
goosyun
