...

VBA を LibreOffice で動かすには

by user

on
Category: Documents
10

views

Report

Comments

Transcript

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