はっぱち雑記ブログ

【LibreOfficeのマクロはExcel VBAと互換性がある?違い・変換方法・注意点を解説】

LibreOfficeでExcelのVBAマクロは動く?

LibreOfficeのマクロ機能はVBAと互換性がある?

ExcelのVBAマクロをLibreOfficeで動かす方法や、マクロ言語の違いを知りたい!

LibreOfficeは無料で使えるオフィススイートですが、Excel VBAマクロとの互換性が気になる方も多いはず。

実際、LibreOffice CalcではExcel VBAのマクロがそのままでは完全に動作しません。

本記事では、LibreOfficeのマクロ機能とExcel VBAの互換性、動作の違い、VBAマクロの変換方法、LibreOfficeでのマクロの使い方 を詳しく解説します!


LibreOfficeのマクロとExcel VBAの互換性はある?

LibreOfficeはVBAマクロと部分的に互換性があるが、完全ではない!

項目LibreOfficeの対応状況注意点
VBAの基本的な構文(変数・条件分岐・ループ)(ほぼ互換性あり)一部の関数は異なる動作をする可能性あり
Excelのオブジェクト(ワークシート、セル、範囲)(部分的に互換性あり)LibreOfficeのオブジェクトモデルと異なるため、修正が必要
ユーザーフォーム(UserForm)(互換性なし)LibreOfficeでは独自のダイアログ管理が必要
ActiveXコントロール(未対応)代替手段なし
Excel VBAのイベント処理(Worksheet_Changeなど)(部分的に対応)LibreOffice独自のイベント処理に書き換えが必要
VBAでのファイル操作(基本的な操作は可能)パス指定の違いに注意

📌 「シンプルなVBAマクロは動作するが、複雑なマクロは修正が必要」と考えるのがベスト!


LibreOfficeで使えるマクロ言語

LibreOfficeでは、VBAとは異なる独自のマクロ言語をサポートしています。

LibreOfficeで使える主なマクロ言語

  1. LibreOffice Basic(StarBasic)VBAに近い構文で記述可能(互換性は部分的)
  2. Python(UNO API経由)高度なスクリプトが可能で、LibreOfficeで推奨されるマクロ言語
  3. JavaScriptLibreOfficeの拡張機能で利用可能
  4. BeanShell、Java高度なマクロ開発に適用可能

📌 LibreOffice Basic(StarBasic)はVBAに近いため、VBAマクロの移行には最適!


LibreOfficeでExcelのVBAマクロを動作させる方法

【手順】LibreOffice CalcでVBAを有効化する

  1. LibreOfficeを開く
  2. 「ツール」→「オプション」→「LibreOffice」→「詳細」を選択
  3. 「VBAサポートを有効にする」にチェックを入れる
  4. 「OK」をクリックし、LibreOfficeを再起動

📌 VBAサポートを有効にすると、基本的なVBAマクロがLibreOffice Basicで動作しやすくなる!


【ExcelのVBAマクロをLibreOffice Basicに変換する方法】

  1. ExcelのVBAコードをLibreOffice Calcにコピー
  2. 「ツール」→「マクロ」→「マクロの管理」→「LibreOffice Basic」を開く
  3. 「新規作成」でマクロを登録し、VBAコードを貼り付け
  4. 構文をLibreOffice Basicの形式に修正(例:Excelの「Cells」を「getCellByPosition」に変更)
  5. 「実行」をクリックし、動作確認

📌 オブジェクトの参照方法や関数の違いを修正すれば、VBAマクロをLibreOfficeでも利用可能!


LibreOfficeでExcel VBAマクロを動かす際の注意点

VBAとLibreOffice Basicの違い

VBA(Excel)LibreOffice Basic(Calc)
Cells(1,1).Value = "A1"Sheet.getCellByPosition(0,0).Value = "A1"
Worksheets("Sheet1").Range("A1").ValueThisComponent.Sheets.getByName("Sheet1").getCellRangeByName("A1").Value
MsgBox "Hello World"MsgBox "Hello World", 0, "LibreOffice"

📌 シートの参照方法やセルの指定方法が異なるため、修正が必要!


よくある質問(FAQ)

Q. LibreOfficeでExcelのVBAマクロはそのまま動作しますか?

A. いいえ、完全には動作しません。

基本的なコードは動作する場合がありますが、Excel特有の関数やオブジェクトを使用している場合は修正が必要です。


Q. LibreOfficeのマクロでVBAの代わりに何を使うべきですか?

A. LibreOffice Basic(StarBasic)が最もVBAに近い言語ですが、Pythonマクロの使用も推奨されています。


Q. Excel VBAのマクロをLibreOfficeで動かすにはどうすればいいですか?

A. LibreOfficeのVBAサポートを有効にし、LibreOffice Basicの構文に合わせてコードを修正する必要があります。


Q. LibreOfficeのマクロをExcelで動かせますか?

A. いいえ、LibreOffice BasicはVBAとは異なるため、そのままでは動作しません。

Excelで使用するには、VBAの構文に書き換える必要があります。


Q. LibreOfficeでExcelマクロを再現する場合の最適な方法は?

A.

① LibreOffice Basic(VBAに近い)を使う

② Pythonマクロを使用する

のどちらかがおすすめです。


まとめ

LibreOfficeはExcel VBAと完全な互換性はないが、基本的なマクロは部分的に動作する!

VBAマクロをLibreOfficeで動かすには、構文の違いを修正する必要がある!

Excel VBAをLibreOfficeで使うなら、「VBAサポートを有効にする」設定をONにしよう!

📌 LibreOffice Basicを活用して、Excel VBAのマクロをLibreOfficeでも使えるようにしましょう!


参考情報URL

🔗 LibreOffice公式サイト - 最新版のダウンロード・情報

🔗 LibreOffice Basicマクロの解説

🔗 LibreOfficeとVBAの違い(公式ドキュメント)

Pick up

1

2022年5月3日頃より、一部のInstagramユーザーの間で、アプリを起動すると突然 「生年月日を追加」 という生年月日の入力を強制する画面が表示されるケースが急増しているようです。 この影響で、 ...

2

スマホでGoogle検索を利用しようとした際に、検索キーワードの候補として、 検索履歴ではなく「話題の検索キーワード」が表示される場合がありますよね。 この「話題の検索キーワード」に表示される検索キー ...

3

不在連絡かのような内容のSMS 「お客様が不在の為お荷物を持ち帰りました。こちらにてご確認ください http:// ~」 がまたまた届きました。 このメール、またまた増加しているようです。 ...

4

iOSの最新版である「iOS16」がリリースされたことが話題ですよね。 しかし「ソフトウェア・アップデート」の画面を確認してみると… 同時に「iOS15.7」という、iOS15系の最新版もリリースされ ...

-はっぱち雑記ブログ