Macros/Base/001
Appearance
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
説明
私たちは画像をデータベースに組み込まずに管理したいと考えています。利点は、重複を回避できること、特にデータベースのサイズが大きくならないことです。
この機能にはマクロなしでアクセスできます(Special:MyLanguage/Faq/Base/144を参照)。ここでは、関連するプロパティをマクロで管理できることを確認します。目的の結果は次のようになります。

- 一番上のテキストボックスでは、ローカルファイルパスまたは URL を介して画像を取得できます。
- ファイル選択ボタン「 "..." 」は、ローカルファイルパスを選択するためのダイアログを開きます。
- 下部のテキストボックスでは、画像のタイトルを入力できます。
- イメージコントロールでは、画像を表示できます。
上記は、以下に示す 2つのサブルーチンによって実現することができる。
Code
LibreOffice Basicの場合:
Option Explicit
Sub display_image()
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Standard")
oForm.getByName("ImageControl").ImageURL = convertToUrl( oForm.getByName("textbox_ImageURL").Text )
End Sub ' display_image
Sub save_path(oEvent)
Dim oForm As Object
oForm = ThisComponent.DrawPage.Forms.getByName("Standard")
oForm.getByName("textbox_ImageURL").Text = oEvent.Source.Text
oForm.getByName("textbox_ImageURL").commit
display_image()
End Sub ' save_path
サブルーチン display_image は、次のイベントに関連付けられています。
- フォームの保存を変更した後
- Image Control がフォーカスを受け取った場合
サブルーチンsave_pathは、次のイベントに関連付けられています。
- Text Box のフォーカスが失われました。
- File Selection オブジェクトのテキストが変更されました。