LibreOffice内から短いマクロを使用して、ドキュメント内のすべての画像を削除することもできます。
Sub RemoveImages
Dim oDoc as Object
oDoc = ThisComponent
Dim oGraphics as Object
oGraphics = oDoc.getGraphicObjects()
Dim oImg as Object
For Each oImg in oGraphics
oDoc.getText().removeTextContent(oImg)
Next
End Sub
この例を変更して、画像のプロパティを変更したり(すべてを均一なサイズにするなど)、シェイプオブジェクトを処理することもできます。
マクロの作成
LibreOfficeは、コードを作成、デバッグ、保存、実行するためのIDEだけでなく、基本言語も提供します。
マクロダイアログ、使用を開くにはAlt+ F11メニューから、または、[ツール ]> [ マクロ ]> [ 整理マクロ > LibreOfficeの基本
コードは、ライブラリに編成されたモジュールに配置されます。独自に作成することもできますが、ほとんどの目的で、組み込みのMyMacrosライブラリと組み込みのModule1を使用できます。
マクロダイアログが開いたら、Module1を強調表示し、[ 編集 ] を押します。IDEが開きます。
コードはサブと関数に編成されています。VBAから借用した関数は値を返すために使用され、Subsは値を返しません。Mainの下の任意の場所に独自のサブと関数を定義できます。したがって、このコードを使用して画像を削除するには、モジュールに貼り付けるだけです。
マクロの使用
IDEからコードを実行するには、実行するSub内の任意の場所をクリックしてを押しF5ます。(関数は値を返すため、Subから呼び出す必要があります。)ダイアログボタンまたはメニューを使用してコードを実行することもできます。IDEには統合デバッガーが含まれています。これは、新しいコードを作成するときに重要です。
次にマクロダイアログを開くと、マクロとしてリストされたサブが表示され、IDEを開かなくても実行できます。個別のマクロをメニューまたはツールバー項目に割り当てることもできます。
注:このマクロは、アクティブなドキュメントが何であっても実行されます。メニューまたはマクロダイアログからマクロを実行する場合、これはボタンを押したばかりのドキュメントであると想定できます。IDEを使用してコードを作成、実行、またはデバッグする場合は、別のドキュメントをアクティブドキュメントにしていないことを確認してください。
LibreOffice Basic
LibreOffice BasicはVBAに非常に似ていますが、オブジェクトモデルが完全に異なり、構文にも多くの違いがあるため、その類似性は誤っている可能性もあります。
たとえば、VBAでは、画像オブジェクトへの参照を取得すると、画像オブジェクトに削除メソッドが含まれます。ここでは、オブジェクトが持つメソッドまたは継承するメソッドはほとんどありません。画像オブジェクトを削除するには、ブラウザベースのDOMとよく似た構造と構文を持つドキュメント要素を使用します。
LibreOfficeヘルプには、LibreOffice Basicを使い始めるためのリンクがあります。