Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Namazu 2.0.5 for Win32 パッチのまとめ



ども、佐藤@大和鑑定です。

baba@xxxxxxxxxxxxxxxxxxxxxx wrote:

> ありがとうございます。olemsword.pl, oleexcel.pl, olepowerpoint.pl 
> は CVS tree に commit しておきました。

確認しました。ありがとうございます。
一太郎は使用していないのでMS Office97/2000のテストしか出来ませんが
色々試してみます。

とりあえず、以下の環境でテストした結果を報告します。
■環境
 ・Windows NT Workstation Version 4.0(SP5)
 ・Namazu for Win32 2.0.5 + CVS のフィルタ+mknmz(EUC->SJISパッチ)
 ・Microsofr Office97(SR-1)
 ・IE5.5(SP1)

1.olemsword.pl
 読取りパスワード有り、無しともに問題なく動作。
2.oleexcel.pl
 ・読取りパスワード無しファイルは問題なく動作。
 ・読取りパスワード有りファイルは、パスワード入力ダイアログを表示。
  ボタンを押すまでインデックス作成を停止する。
 ・リンクファイルは、自動リンク更新確認ダイアログを表示。
  ボタンを押すまでインデックス作成を停止する。
3.olepowerpoint.pl
 問題なく動作。
4.olertf.pl
 問題なく動作。

■備考
 ・半角カナを含む日本語ファイル名の場合、以下のエラーが出るケースが
  あるようです。
Win32::OLE(0.1402) error 0x80080005: "サーバーの実行に失敗" at C:/namazu/share/namazu/filter/win32/olepowerpoint.pl line 93

 ・半角カナの「フ ゜」(フ+半濁音)が「ブ」(フ+濁音)に変換されて
  いるようです。


>  > ■mknmz のパッチ
> これは迷ったのでまだ当てていません。当ててよさそうではありますが。

はい、Win32で mknmz -U している場合、日本語ファイル名を読める形で
表示するので、取り込んで頂けると嬉しいです。
表示部だけの修正なので他のOSには影響が出ないと思います。


>     $fields->{'title'} = $cfile->BuiltInDocumentProperties(1)->{Value}
>       unless $cfile->BuiltInDocumentProperties(1)->{Value};            # title
 (略)
> のような 1,7,12 のような番号依存は(上はolemsword.plのものですが)、
> もう少しなんとかならないのでしょうか。最初、olertf.pl でやってみよ
> うとしたら、

VBAのヘルプを見る限り、ここは「ID番号」か「名前」で指定可能です。
さっそく試してみるとエラーが発生せずに処理できました。正しい結果が
得られているかは不明ですが、「名前」でも記述できるようです。

    $fields->{'title'} = $cfile->BuiltInDocumentProperties('Title')->{Value}
      unless $cfile->BuiltInDocumentProperties('Title')->{Value};            # title
    $fields->{'author'} = $cfile->BuiltInDocumentProperties('Last Author')->{Value}
      unless $cfile->BuiltInDocumentProperties('Last Author')->{Value};            # lastauthor


>  >    'Password' => 'dummy password' で対象の .xls ファイルに読み取り
>  >    パスワードを付けていた場合、確認ダイアログ無しでスキップさせる。
> Windows95 + Excel97 ではこのダミーパスワードの行を削らないと動きま
> せんでした。よくわかりませんが、OLE のバージョンの違いでしょうか?

こちらでテストした限り、Excel97(SR-1)/2000とも問題ないのですが(^^;
パスワードの空白を外して8文字以内でないと駄目なのかな?


> これはとりあえずコード中に 100x100 であることをコメントにしときま
> した。いずれ野首さんが mknmzrc に追い出して下さることでしょう。

はい、確認しました。
これで無限ループ(と思うほど時間がかかる)に陥る心配はありませんね。


>  > ■olepowerpoint.pl のパッチ
> Windows95 + PowerPoint97 では、154 行目付近で、
> 
> -    $ppt = Win32::OLE->new('PowerPoint.Application', sub {$_[0]->Quit(0);})
> +    $ppt = Win32::OLE->new('PowerPoint.Application', sub {$_[0]->Quit;})
> 
> としないといけませんでした。そして、

同じくエラーが出るのを確認しました。
Win32::OLE(0.1402) error 0x80020011: "コレクションをサポートしません。"
    in METHOD/PROPERTYGET "Quit" at C:/namazu/share/namazu/filter/win32/olepowerpoint.pl line 154



>  >   ・181行
>  >    表示しているPowerPointを[ファイル−終了]と同じ動作で閉じる。
> は不要でした。

そのようですね。Windows98でもう一度調査してみます。


>  >   ・PowerPoint97でテストした結果、WordやExcelのようにPowerPointを
>  >    非表示のまま処理することはできない。必ず表示しないとOLEオート
>  >    メーション処理に失敗する。多分PowerPointの仕様でしょう。
> # ふむ。なんだかなあ、な仕様ですねえ。

勝手な想像ですが、WordやExcelに比べるとユーザからのVBAの要求が低かった
のでは(笑)


大和不動産鑑定株式会社
情報システム部
佐藤 充男
satou@xxxxxxxxxxxxxxxxx
http://www.daiwakantei.co.jp/