質問するログイン新規登録

Q&A

解決済

1回答

12185閲覧

LibreOffice Calc ボタンをマクロで表示/非表示させたい

86chan

総合スコア14

LibreOffice Calc

LibreOffice Calcは、様々なOSで利用可能なオフィススイートであるLibreOfficeに含まれるオープンソースの表計算ソフトです。テンプレートや背景色、枠線といった書式設定の各項目を柔軟で設定することができます。

LibreOffice Basic

LibreOffice Basicは、LibreOfficeの作業を自動化するプログラミング言語。LibreOfficeは、OpenOffice.orgから派生しており、多くのオペレーティングシステムで利用できるオフィススイートです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/06/22 03:43

0

0

前提・実現したいこと

LibreOfficeを初めて使います。
ボタン1を作り、クリックするとそのボタンを非表示にしたいです。
また、ボタン2を押すことで非表示になったボタン1を表示させたいです。

ボタンはフォームコントロールから追加するボタンです。

発生している問題・エラーメッセージ

いくつかのサイトを参考に以下のようにマクロを書きました。

VBA

1Option VBASupport 1 2 3sub test 4Dim BT1 As Object 5BT1 = ActiveSheet.getByName("Bt1") 6ActiveSheet.BT1.Visible = False 7End Sub

しかし、以下のようなエラーが出ます。

BASIC ランタイムエラー. '423' getByName

どうすればいいかさっぱりなのですが、そもそもLibreOffice CalcではExcelで言うところの「オブジェクト名」はどれに当たるのでしょうか?フォームのプロパティの名前、コントロールのプロパティの名前の2カ所を"bt1"にしています。

補足情報(FW/ツールのバージョンなど)

LibreOffice 6.4.4.2 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1件

0

ベストアンサー

時間が経ってしまいましたが自己解決法を掲載します。

非表示・再表示という形を取りたかったのですが調べた範囲では不可能でした。なのでサイズ変更という形を取りました。

Libreoffice

1 With ActiveSheet.Shapes("Button_" + No) 'ボタンを縮小(非表示) 2 .Height = 0 'ボタンの縦幅 3 .Width = 0 'ボタンの横幅 4 End With 5 6 With ActiveSheet.Shapes("Button_" + No) 'ボタンを拡大(表示) 7 .Height = 12.888888888888 'ボタンの縦幅 8 .Width = 64.55555555555 'ボタンの横幅 9 .top = 13.0000000000000 * CInt(No) 'ボタン左上のY軸(縦)の位置 10 .left = 225.000000000000 'ボタン左上のX軸(横)の位置 11 End With

Shapes()でデザインモードで作成したボタンを指定します。
引数にボタンの番号(Int型)もしくは名前(String型)が入ります。
番号は作った順番(0スタート)です。
名前はデザインモードでボタンを右クリック(コンテキストメニュー)にある名前で指定できます。
イメージ説明
同じ名前でいくつか作る場合は"名前_0"とつけてコピペします。
そうすると"名前_0”、"名前_1"、2、3・・・と自動的に命名してくれます。
イメージ説明

縦幅、横幅などの値はオプション→LibreOffice Calc→全般にあるメトリックの使う単位をポイントにします。
イメージ説明
そしてボタンを設置するセル幅を指定します。今回は縦幅12.00pt,横幅65.00ptにしました。また、セルのサイズに合わせてボタンを作り、ボタンは縦に連続で並んでいます。
コンテキストメニューからセルサイズに合わせるをします。そして見栄えが良くなるよう調整したあとのボタン_0のサイズや位置はこんな感じです。
イメージ説明
あとは分かると思いますが、非表示のときはサイズを0に、表示するときはサイズを元に戻し位置も合わせます。このとき元の値を入れても元通りのサイズ(もしかしたら位置も)にはならない可能性があるので調整が必要です。

長くなりましたが、以上が解決法になります。

投稿2020/07/12 06:10

86chan

総合スコア14

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問