• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenOffie CalcでOOoBマイマクロの中身が消えてしまいま)

OpenOffie CalcでOOoBマイマクロの中身が消えてしまいます。

このQ&Aのポイント
  • OpenOffice Calcで作成したOOoBマイマクロの中身が消えてしまいました。
  • OpenOffice.org3.2.0のマイマクロに保存したファイルを別パソコンで開くと、マクロプログラムが消えてしまいます。
  • 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 恐れずに足らず」です。 頑張って下さい。

nori79
質問者

お礼

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

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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には匹敵しないのではないのかなって思いました。悲観的にまとめるのは本意ではありませんが、そんなに簡単ではないと思っています。

nori79
質問者

お礼

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

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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を入れれば良いというかもしれませんが、それは別問題ですからね。

nori79
質問者

お礼

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

回答No.1

>OpenOffice.org3.2.0のマイマクロ(Standard-Module1)にマクロプログラムを作成し保存しました。保存したファイル(*****.ods)を別パソコンで開き、・・・ ⇒作成したパソコンに残っていますよ!!

nori79
質問者

お礼

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