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/