vba をlibreoffice で動かすには -...
TRANSCRIPT
![Page 1: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/1.jpg)
1
VBAを LibreOfficeで動かすには
作成:フリーソフトソリューション @kyoseishuryo
LibreOfficeで VBAが動くようになりましたが、EXCELファイルを LibreOfficeで開いたり VBAの
コードを貼り付けるだけではエラーになることがよくあります。
VBAを LibreOfficeで動かす方法を説明します。
![Page 2: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/2.jpg)
2
目次
プログラムを実行したときの環境 ......................................................................................................... 2
今回使用するプログラムの説明 .......................................................................................................... 3
EXCELを LibreOfficeで開いて VBAを実行してみた ..................................................................... 4
VBAを LibreOfficeで使えるように編集する ..................................................................................... 5
注意 .................................................................................................................................................. 5
VBAが入っている EXCELファイルを LibreOffceで保存 ............................................................ 6
VBAプログラムを LibreOfficeで動くよう編集する ........................................................................ 8
コマンドボタンからプログラムを実行させる ................................................................................... 11
時間を正しい形式で表示させる ................................................................................................... 15
プログラムを実行したときの環境
OS:Windows VISTA Service Pack2
LibreOffice:バージョン: 4.3.1.2
![Page 3: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/3.jpg)
3
今回使用するプログラムの説明
「書き込み」ボタンをクリックすると、決まった所(茶色の枠で囲まれている箇所)に入力された文字
を最初の行に挿入し、(プログラムが実行された)時間を記録する VBAのプログラムです。
これを LibreOfficeで動かします。
<実行前>
「書き込み」ボタンをクリック
↓
<実行後>
表の一番上に行が挿入され、
セル B2に入っていたコメントが最初の行に移動、その時間が記録されました。
![Page 4: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/4.jpg)
4
EXCELを LibreOfficeで開いて VBAを実行してみた
※ここは説明だけなので、同じ操作をやってみる必要はありません。
方法は後で説明しますが、EXCELファイルを LibreOfficeで開き、マクロを有効にしてみました。
「書き込み」ボタンを押してみても動きません。
さらに、メニューバーからマクロを呼び出し実行してみました。
エラーが出て、プログラムが止まりました。
![Page 5: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/5.jpg)
5
VBAを LibreOfficeで使えるように編集する
注意
この方法だとワークシートのデータが消えたり、プログラムが使えなくなることがあります。
ファイルをバックアップするか、元の EXCELファイルを残しておいてから試してください。
このプログラムを LibreOfficeで動かしてみる。
コメント 時間
このプログラムを LibreOfficeで動かしてみる。 2016/7/22 11:04
すごい、書き込むのに驚異的な速さ。 2016/7/22 10:11
使わない関数を消してみた。 2016/7/22 10:10
freesolアカウントで開いてみた。 2016/7/22 9:53
久しぶりに、Excelで開いてみた。 2016/7/3 20:39
このシステムはコメントに通し番号があっても良いかな。 2013/10/3 14:24
眠たい。 2013/10/3 14:24
この方法でやると、上の図のようにワークシートには不自然に空の行が挿入されるので、
余分な行を消し最後にワークシートを復元します。
VBAプログラムの内容によっては、この方法で動かせない物があります。
![Page 6: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/6.jpg)
6
VBAが入っている EXCELファイルを LibreOffceで保存
VBAが入っている EXCELファイルを右クリック→「プログラムから開く(H)」→LibreOffice Calc」を
選択
↓
この警告が出た場合は、マクロ実行に関するセキュリティレベルを「中」または「低」に設定し、
マクロを実行する前に一旦ファイルを閉じて、再度開く必要があります。
![Page 7: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/7.jpg)
7
メニューバー「ファイル(F)」→「名前を付けて保存(A)」をクリック
↓
このダイアログが出たら、一番上の「ODF表計算ドキュメント(.ods)」を選択
↓
ダイアログ下の「保存」ボタンをクリック
(保存された ODS形式でファイルが、開かれている状態になります)
![Page 8: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/8.jpg)
8
VBAプログラムを LibreOfficeで動くよう編集する
※始めに、
プログラムの赤枠部分は、VBAのコードであることをコンピューターに認識させるため、自動的に挿入されます。
もし挿入されていない場合、正しく動かなかったり、プログラムが使えなくなることがあります。
メニューバー「ツール(T)」→「マクロ(M)」→「マクロを実行」をクリック
![Page 9: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/9.jpg)
9
左側の「ライブラリ」から VBAのプログラムが入っているファイルの左側の+をクリック。ツリー表示させる。
↓
「VBAProject」の左側の+をクリック。
↓
EXCEL VBAの場合と同様に、プログラムが入っているモジュールを選択。
※これ以下のモジュールがどのように分類、ツリー表示されるかは変わる場合がありました。
↓
右側の「マクロ名」から実行したいプログラムを選択し、「実行」ボタンをクリック。
エラーが出ます。
ダイアログの「OK」ボタンをクリックします。
↓
エラーが出ていた箇所が選択された状態になります。
![Page 10: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/10.jpg)
10
行がずれないように注意して、エラーが出た所をコメントアウトします。
次に「実行」ボタンを押して再度マクロを実行します。
エラーが出た所を再度コメントアウトし、これをエラーが出なくなるまで繰り返します。
エラーが出なくなったので、プログラムが動くか試しましたが、動きません。
(今回はこの前に余分な行を削除しましたが、このプログラムの場合 マクロの実行→コメントアウト を繰り返すこと
で不自然に数行が挿入されます。)
![Page 11: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/11.jpg)
11
コマンドボタンからプログラムを実行させる
メニューバー「表示(V)」→「ツールバー(T)」→「フォームコントロール(J)」を選択
一番上の右側「デザインモード オン/オフ」をクリック。
![Page 12: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/12.jpg)
12
「書き込み」ボタンを右クリック→「コントロール(T)」
「イベント」タブをクリック
↓
「実行時」の右側にある小さなボタンをクリック(...と表示)。
![Page 13: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/13.jpg)
13
右側の「マクロ(A)」をクリック
ボタンを押した時に実行させたいプログラムを選択→「OK」ボタンをクリック
![Page 14: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/14.jpg)
14
再び、一番上の右側「デザインモード オン/オフ」をクリック。
「書き込み」ボタンを押すと動くかテスト。
挿入された行だけ、時間が正しい形式で表示されていません。
![Page 15: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/15.jpg)
15
時間を正しい形式で表示させる
時間を入力するセルが挿入される一つ上にある、「時間」と書かれたセルを右クリック→「セルの書式設定(F)」を
クリック
(プログラムを用いて最初の行を挿入する仕組みになっているため、時間が入力されるセルは一つ上の物と同じ
書式になります。)
![Page 16: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/16.jpg)
16
(ここは文字列が入力されていますが、)
「カテゴリー」から「日付」を選択→「形式」が「1999/12/31 13:37」(YYYY/M/D H:MM)を選択→「OK」ボタンをクリ
ック
再びテスト。
![Page 17: VBA をLibreOffice で動かすには - freesol.web.fc2.comfreesol.web.fc2.com/application/VBAtoLibreOffice.pdf · 4 EXCEL をLibreOfficeで開いてVBAを実行してみた ※ここは説明だけなので、同じ操作をやってみる必要はありません。](https://reader034.vdocuments.site/reader034/viewer/2022052209/5a7a58f57f8b9aec2d8c3e11/html5/thumbnails/17.jpg)
17
日時が正しい形式で表示されました。
(「時間」を記録するセルの右側の罫線が表示されていません。Ubuntuで開くとこの部分も罫線が表示されてい
ましたが、Windows Vistaでこれを直す方法はまだ見つかっていません。)
このあとに、元の EXCELファイルかバックアップしておいたデータを貼り付けて、ワークシートを復元されることを
おすすめします。
以上、最後までお付き合いいただいて、ありがとうございました。