
OpenOffie CalcでOOoBマイマクロの中身が消えてしまいます。
OpenOffice.org3.2.0のマイマクロ(Standard-Module1)にマクロプログラムを作成し保存しました。
保存したファイル(*****.ods)を別パソコンで開き、OpenOffie CalcでOOoBのマイマクロを編集しようとしたのですが、マクロプログラムが消えてしまいました。(Sub Mainの空関数のみ表示されます。)
何故、マイマクロは消えてしまったのでしょうか。又、復旧方法はあるのでしょうか。
Excel VBAをOOoBに移植しようとしていますが、OpenOffice初心者で色々と困っています。
お手数おかげしますが、ご存知の方、教えて下さい。宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>保存したファイル(*****.ods)と同一フォルダには、他にファイルは作成されてなかったと思うのですが..もしかしたら、OpenOfficeのインストールフォルダ以下のどこかに作成されていたりするのですか。
=> #1です。
難しく考える必要はありません。
単純にOpenOffice.org Basicは以下の場所で保存出来ます。
tool => Macro => マクロの管理 => OPenOffice.org Basic
を選択すると下記3項目が表示されます。
1)私のマクロ : 作成したパソコンであれば別のOOo fileでも使用できるもの。
2)OpeOffice.orgのマクロ : 1)と基本的には同じですがOpenOffice.orgの拡張機能のマクロ等が普通格納される。
3)作成しているCalcのfile : file付属のマクロ
つまり、1),2)はパソコン固有のマクロになり、3)はfile固有のマクロになります。
従って、質問者さんが行うように他のPCにてマクロを使いたいのならば3)に属する様にマクロを作成すればOKです。(作成したマクロをcopy pasteすればOK)
あと、私見ですが
VBA => OpenOffice.org Basic
はVBAが分かっていれば何無くコードが書けます。
なんちゃってVBAマスターのレベルだと少し困惑するかも知れません。
下記URLの
URL : http://openoffice3.web.fc2.com/
Free Softwareでいこう!!「 OpenOffice.orgを使おう編 」 => 4.Macroの杜 => Macroの一歩 (「Macro使い」への8分間 )
を理解できれば、「Openoffice.Org Basic 恐れずに足らず」です。
頑張って下さい。
親切な回答ありがとうございます。
1)私のマクロに格納していたマクロは C:\Documents and Settings以下のフォルダで見つかりました。
今後、作成するマクロは 3)作成しているCalcのfile に格納します。
「なんちゃってVBAマスター」のレベルにも達してないのですが、教えていただいた「Macroの一歩 (「Macro使い」への8分間 )」は理解できました。
今後、「Macroの一歩 (「Macro使い」への8分間 )」からリンクがはられていた、「はにゃ?」さんの個人サイト」などを参考に勉強していきたいと思います。
No.4
- 回答日時:
ある程度のVBAプログラマなら、OOo Basic で出ているサンプルコードは、問題ではないと思います。
しかし、その逆のVBAコードはというと、そんなに簡単には行かないはずです。最近、ここであった質問で、[気象庁サイトで、ひとつの地域の1時間ごとのデータを1年分ワークシートに出力する方法]などは、本来、OOo Basic で出来ると便利ですね。時々、同じような質問が出てくる話ですが、Excel なら、QueryTable を使うところですが、拡張性や移植性を考えると、そういう固有のオブジェクトは避け、できれば、OOo Basic でも可能なら、多少、遅くても可能ならよいと思います。
私自身、配列のFor Each ? In ?Next のループを、OOo Basic に切り替えるぐらいの転換は問題ありませんが、OOo Basic には、事前バインディングがないわけですね。それ自体は大したことがないのですが、そもそも、CreateObject やGetObject で取れる範囲が限られているように思うのです。ほとんど、MS系のオートメーションやWin のライブラリの呼び出しが出てこないのです。今、VBAは、一部の.Net FrameWork までサポートしています。
また、オートメーションオブジェクト(例:ShellApplication)やWMIなどというのは、ここらはどうなっているのかなって思います。この前は、WinHttp を使いたかったのですが、これも分かりませんでした。インターネットで調べると、ネットにアクセするコードが非公開になっていましたが、おそらく、Basic ではなく、JavaScript 側で書くのではないのかなっていう想像をしました。
また、IEイベント(WithEvents objIE As InternetExplorer )も、たぶん、できないようなきがします。Class ても、初級で、NewWorkbookイベント[App_NewWorkbook(ByVal Wb As Workbook] があります。それで、ブックのInstance を設けます。この程度Basicでは分かりません。この程度は出来ないと、OOo Basic でサポート出来るとは言えないと思います。
私は、他の言語と比較して、Basic の本質的な所は、非MS系であって、根本的な発想や組み立て段階で、違っているのではないかと予想を立てています。もっと基礎レベルでも、セルの捉え方も違うし、私には、VBAからでは見えない部分がおおいです。だから、VBAプログラミングが、Basic に簡単に移行できたり、乗り換えが可能だとは思っていません。
MS系のVBAや同系の言語からの組み立てや発想からでは、アプローチが間違っているようにさえ思っています。NovellバージョンBasic を使っても、組み立ての流れが違うので、いくら Black Box化されても、思わぬところで失敗するように感じています。ある程度のレベルなら、VBAというよりも、Excel全体は、C言語にあるというのが分かって使っているのと、そうでないとでは、差が出てきます。言い換えると、OOo の本質的な部分では、Java があるのだろうとは予想しています。ただ、そこまで、追い求めても、限られた時間では、達成できそうもありません。別に乗り換えするつもりはないのですが、MS系に振り回されるのも問題だから手をつけたけれども、結局、歯が立たないというのが私の感想です。
MS系の歴史的な層の厚さから、簡単には同じレベルには到底至らないと思うのです。VBAというものは、本来、Win系の標準ツールの恩恵があって便利になっているわけで、そういう利用が公開になっていかないと、MS系の路線から出られないし、VBAには匹敵しないのではないのかなって思いました。悲観的にまとめるのは本意ではありませんが、そんなに簡単ではないと思っています。
再度、親切な回答(アドバイス)ありがとうございます。
小生も「Excel VBAのOOoBへの移植は難しいのでは」と感じております。
まだ移植作業は少ししか進んでいないのですが、今のところ以下の2点に問題を感じています。
(1)IF文やFOR文などの基本構文はそのまま使用できるのですが、「セルの読み書き」や「グラフオブジェクトの変更」、「メニューバーの操作」など、変更しなければならない箇所が多々あり、「移植」というよりは「作り直し」の感がある。
(2)パフォーマンスが悪い。(INIファイルを読み込み、読み込んだ値をセルに展開し、グラフ表示を行うのに、VBAに比べて何倍もの時間がかかってしまいます。)
これからまだまだ問題点は出てくると思いますが、「移植可否の検討」も含めて作業を進めていきたいと思います。
本当にご丁寧な回答ありがとうございました。
No.2
- 回答日時:
>マイマクロ(Standard-Module1)は残っていました。
IDEの置き場所には、個別ユーザーフォルダ:(XPの場合)
C:\Documents and Settings\[User ID]\Application Data\OpenOffice.org\
に、Basic フォルダがありますから、個別ユーザーの共有モジュールはここに置かれます。
だから、もし、個別にマクロを置くなら、個別のファイル側にマクロ・スクリプトを置かなくてはならないはずです。これは、Excel VBAでも同じことですね。
でも、上記に書かれたフォルダからファイルを取り出すのではなくて、マクロ自体をコピー&ペーストすればよいと思います。不要だったら、共有モジュールに書かれたマクロ・スクリプトは削除すれば簡単だと思います。
>OpenOfficeのインストールフォルダ以下のどこかに作成されていたりするのですか。
良く意味が分からないのですが、通常、インストールフォルダは、Programe Files 側だと思います。そこに入れる人は、それほど多くないと思います。通常、User 側の My Documents のフォルダか、その下位のファイルフォルダを置くのではないでしょうか。
それと別に、上記のユーザー側の設定フォルダがあります。
なお、
>Excel VBAをOOoBに移植しようとしていますが
これは難しいと思います。Option によって、VBASupportモードにはなるものの、実際の所は、ほとんど互換性はありません。おそらく、徹底した脱MS思想だと思いますが、VBAで使えるWin側のツールの呼び出しが利きません。また、JavaScript も独自だと聞きますと、簡単ならともかく、VBAと同じレベルには至りません。それが、今の私の現状です。それ以外のPythonなどの言語に手を出す余裕もありません。NovellブランドのOpenOffice.orgを入れれば良いというかもしれませんが、それは別問題ですからね。
親切な回答、ありがとうございます。
帰宅したら、家のパソコンの
C:\Documents and Settings\[User ID]\Application Data\OpenOffice.org\
の下のフォルダを調べてみます。
Excel VBAからOOoBへの移植は敷居が高そうですね。現状、OOoBの知識がほとんど無いので辛いですが、移植できない場合は、できない(難しい)理由を調べていきたいと思います。
No.1
- 回答日時:
>OpenOffice.org3.2.0のマイマクロ(Standard-Module1)にマクロプログラムを作成し保存しました。
保存したファイル(*****.ods)を別パソコンで開き、・・・⇒作成したパソコンに残っていますよ!!
早速の回答ありがとうございます。
作成したパソコンに残っているのですね。確かに作成したパソコンで保存したファイル(*****.ods)を開いたらマイマクロ(Standard-Module1)は残っていました。
ということは、保存したファイル(*****.ods)以外にもファイルが存在するということですね。
家のパソコンで作成したので、今は探せないのですが、保存したファイル(*****.ods)と同一フォルダには、他にファイルは作成されてなかったと思うのですが..
もしかしたら、OpenOfficeのインストールフォルダ以下のどこかに作成されていたりするのですか。
初心者で申し訳ありません。ご存知でしたら教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
エクセル終了時の保存確認メッ...
-
エクセルの関数を使って、セル...
-
昨日まで動いていたエクセルの...
-
エクセルで、ハイパーリンクを...
-
マクロを消すマクロは不可能?
-
excelでpersonal.xlsを常に開く...
-
エクセル2013vbaで、見えない名...
-
VBA マクロ実行時エラー’1004Ra...
-
サクラエディタのマクロ設定を...
-
マクロでマクロを削除する
-
エクセルの内部エラー【エクセ...
-
個人用マクロブックについて
-
別のパソコンでエクセルのマク...
-
アクセスでファイルを開いたと...
-
excelファイルに使われているVB...
-
excelが別プロセスで起動してし...
-
Excelが勝手にシート移動してし...
-
アクセス ファイルの重さの限界
-
word2013でマクロが記録できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで印刷する方法 エクセ...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
コピーしたファイルのマクロを...
-
別のパソコンでエクセルのマク...
-
Excelが勝手にシート移動してし...
-
【マクロ】宣言は、何のために...
-
Excelマクロ ファイル名が変わ...
-
【マクロ】エラーが発生⇒実行時...
-
VBA マクロ実行時エラー’1004Ra...
-
excelのマクロ実行でブロックさ...
-
マクロを消すマクロは不可能?
-
エクセル2013vbaで、見えない名...
-
エクセルマクロ実行中に別ファ...
-
EXCEL マクロ クリップボードク...
-
マクロを設定したのに、拡張子...
-
excelが別プロセスで起動してし...
-
アクセスでファイルを開いたと...
おすすめ情報