電子書籍の厳選無料作品が豊富!

OpenOffie CalcでOOoBマイマクロの中身が消えてしまいます。
OpenOffice.org3.2.0のマイマクロ(Standard-Module1)にマクロプログラムを作成し保存しました。
保存したファイル(*****.ods)を別パソコンで開き、OpenOffie CalcでOOoBのマイマクロを編集しようとしたのですが、マクロプログラムが消えてしまいました。(Sub Mainの空関数のみ表示されます。)
何故、マイマクロは消えてしまったのでしょうか。又、復旧方法はあるのでしょうか。
Excel VBAをOOoBに移植しようとしていますが、OpenOffice初心者で色々と困っています。
お手数おかげしますが、ご存知の方、教えて下さい。宜しくお願いします。

A 回答 (4件)

>保存したファイル(*****.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 恐れずに足らず」です。

頑張って下さい。
    • good
    • 0
この回答へのお礼

親切な回答ありがとうございます。
1)私のマクロに格納していたマクロは C:\Documents and Settings以下のフォルダで見つかりました。
今後、作成するマクロは 3)作成しているCalcのfile に格納します。
「なんちゃってVBAマスター」のレベルにも達してないのですが、教えていただいた「Macroの一歩 (「Macro使い」への8分間 )」は理解できました。
今後、「Macroの一歩 (「Macro使い」への8分間 )」からリンクがはられていた、「はにゃ?」さんの個人サイト」などを参考に勉強していきたいと思います。

お礼日時:2010/06/23 01:04

ある程度の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には匹敵しないのではないのかなって思いました。悲観的にまとめるのは本意ではありませんが、そんなに簡単ではないと思っています。
    • good
    • 0
この回答へのお礼

再度、親切な回答(アドバイス)ありがとうございます。
小生も「Excel VBAのOOoBへの移植は難しいのでは」と感じております。
まだ移植作業は少ししか進んでいないのですが、今のところ以下の2点に問題を感じています。
(1)IF文やFOR文などの基本構文はそのまま使用できるのですが、「セルの読み書き」や「グラフオブジェクトの変更」、「メニューバーの操作」など、変更しなければならない箇所が多々あり、「移植」というよりは「作り直し」の感がある。
(2)パフォーマンスが悪い。(INIファイルを読み込み、読み込んだ値をセルに展開し、グラフ表示を行うのに、VBAに比べて何倍もの時間がかかってしまいます。)
これからまだまだ問題点は出てくると思いますが、「移植可否の検討」も含めて作業を進めていきたいと思います。
本当にご丁寧な回答ありがとうございました。

お礼日時:2010/06/28 18:12

>マイマクロ(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を入れれば良いというかもしれませんが、それは別問題ですからね。
    • good
    • 0
この回答へのお礼

親切な回答、ありがとうございます。
帰宅したら、家のパソコンの
C:\Documents and Settings\[User ID]\Application Data\OpenOffice.org\
の下のフォルダを調べてみます。
Excel VBAからOOoBへの移植は敷居が高そうですね。現状、OOoBの知識がほとんど無いので辛いですが、移植できない場合は、できない(難しい)理由を調べていきたいと思います。

お礼日時:2010/06/22 13:51

>OpenOffice.org3.2.0のマイマクロ(Standard-Module1)にマクロプログラムを作成し保存しました。

保存したファイル(*****.ods)を別パソコンで開き、・・・
⇒作成したパソコンに残っていますよ!!
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
作成したパソコンに残っているのですね。確かに作成したパソコンで保存したファイル(*****.ods)を開いたらマイマクロ(Standard-Module1)は残っていました。
ということは、保存したファイル(*****.ods)以外にもファイルが存在するということですね。
家のパソコンで作成したので、今は探せないのですが、保存したファイル(*****.ods)と同一フォルダには、他にファイルは作成されてなかったと思うのですが..
もしかしたら、OpenOfficeのインストールフォルダ以下のどこかに作成されていたりするのですか。
初心者で申し訳ありません。ご存知でしたら教えて下さい。

お礼日時:2010/06/22 09:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報