よろずやネット

最近はLibreofficeにハマっています。

2020-03-01から1ヶ月間の記事一覧

LibreOffice、自身のファイル情報を取得する。

LibreOffice、自身のファイル情報を取得するマクロです。 Sub SelfFileDirName下記を取得します。 1.自身のファイル名 2.自身のファイルパス 3.自身のディレクトリ Sub SelfFileDirName Dim oUrl As String Dim FileName As String Dim FilePath As St…

LibreOffice Calc、用紙の余白を設定する

印刷ジョブの基本、用紙の余白を設定するマクロです。 Sub SetPageMargin Option Explicit Sub SetPageMargin Dim oSheetStyle As Object oSheetStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Default") With oSheetStyle ' 100 …

LibreOffice Calc、用紙の向き(縦長、横長)を設定する

印刷ジョブの基本、用紙の向きを設定するマクロです。 Sub SetPageOrientation Sub SetPageOrientation ' 列挙型(enumeration type)を使用 'Enum PaperOrientation ' https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1view.html Di…

LibreOffice Calc、用紙サイズを設定する

印刷ジョブの基本、用紙サイズを設定するマクロです。 サンプルは下記の2種類。1. Sub SetPageSize (用紙の実寸値を使用する方法) 2. Sub SetPageSize2 (列挙型(Enum)を使用する方法) Sub SetPageSize ' 実寸を使用 Dim oSheetStyle As Object oSheetStyle …

LibreOffice Calc、各セルへの値の書き込みの高速化(配列を使用)

配列を使うと各セルへの値の書き込みが劇的に高速化します。 配列を使用した下記コードでは、所要時間1秒以下で10万個のセルへの書き込みが完了します。 LibreOffice Calcのマクロの欠点である「遅さ」を解決します。【フロー】 1.データを配列に格納し…

LibreOffice Calcのマクロ実行中に画面更新を完全に無効にする

LibreOffice Calcでエクセルの Application.ScreenUpdating = False のようなコードを実行してもシート移動操作を伴った場合にマクロ実行シート以外のシートが表示されてしまう事があります。LibreOffice Calcでで画面更新を完全に無効にするには、マクロ動…