From: Takashi & Kayoko Sano Date: 2002-12-13T00:41:53+09:00 Subject: [ruby-list:36746] Re: WIN32OLEでの定数読み込み 佐野です。artonさん、レスありがとうございます。 arton wrote: > Win32OLEの定数取り出しメソッドは、OLEのタイプ情報を元にしているの > ですが、 > Wordの場合、 > typedef enum { > emptyenum = 0 > } WdBorderTypeHID; > ... > typedef enum { > emptyenum = 0 > } WdCharacterCaseHID; > というような、定数の拡張用に用意したと思われるダミーのenumが多数含 > まれて > いるのが理由です。 > Win32OLEは、タイプ情報から読み取った値を単純にキャピタライズして定 > 義して > いくため、この場合、Emptyenumが複数回定義され、その結果、問題の警 > 告が出 > 力されます。 > 解消方法は、enum名をモジュール名として、取り込みを行ったモジュール > 内に > ネストしたモジュール*)を作成することだと思うのですが、使う場合に煩 > 雑にな > りそうなので、個人的には現在のままでいいと思います。(助田さんがど > う考え > られているかはわかりませんが) > そうですか。そういうことなら仕方がないという感じですね。 > あと、Wordを操作するスクリプトが複数あるのなら、 > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/24042 > の新井さ > んのスクリプトを利用して1度ファイルにしてそれを再利用するようにす > ると良い > と思います。 > 注)9行目は > word = WIN32OLE.new('Word.Application') > WIN32OLE.const_load(word, WIN32OLE::Constants) > と直してください。 こちらの方でやってみます。 詳しい説明でよくわかりました。プログラミングはほぼrubyから勉強し始め ていて(その前にPerlをちょっと勉強しましたが、あまり身に付かず)、よ くわからないことがあるので不安になって質問させていただきました。また こういうことがあるかもしれませんのでよろしくお願いします。>皆様 artonさん、丁寧な説明をしていただき、どうもありがとうございました。 佐野剛史