[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/06/02(Fri) 16:54
投稿者名:MAKO
Eメール:
URL :
タイトル:
Run-time error '91' 何それ・・・(?_?)
いつもお世話にになっております。
毎度教えてもらってばかりで申し訳ございません。
意味不明な障害が発生しましたので、分かる方どうか教えて下さい。

OS:XP
開発:VB6.0
Office2000

VBから、PowerPointのファイルを操作するプログラムにおいて、
下記のようなエラーが出ました。(アラートが上がってきました。)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Run-time error '91'
Object variable or With block variable not set
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

これってどんな時に発生するのでしょう?
ちなみに、その時CPUが100%となっていたそうです。
PowerPointの起動に失敗したのでしょうか?
サイトで調べようとしても、日本語のページが無くて分かりません。
翻訳ソフトで翻訳しても、意味不明です。

誰か、分かる人いらっしゃいましたら、教えて下さい。

投稿時間:2006/06/02(Fri) 18:06
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: Run-time error '91' 何それ・・・(?_?)
インストーラを組んで、きちんとセットアップしていますか……?
日本語用のサテライトライブラリが組み込まれないと、メッセージが英語になったりしますよ。

> Run-time error '91'
> Object variable or With block variable not set
通常なら、『オブジェクト変数または With ブロック変数が設定されていません。』エラーですね。
「Nothing」状態にある変数に対して、プロパティやメソッド操作を行おうとした場合に発生します。


> これってどんな時に発生するのでしょう?
極端な例でよいなら、
 On Error Resume Next
  Dim O As Object
  Set O = GetObject(,"Excel.Application")
  On Error GoTo 0
 O.Visible = True  'Excelが起動済みだった時はOK、事前に起動されていなかったらエラー91
とか、
  With CreateObject("ADODB.Recordset").ActiveConnection
    MsgBox .ConnectionStrig   'この部分でエラー91
  End With
といった場合とか。

もう少しありそうなパターンとしては、
・何らかの処理が失敗したが、On Error によるエラー対応が不十分であったため、エラールーチンの
 最中あるいは直後に、未初期化または解放済みのオブジェクトを操作してしまい、エラーで落ちた。
・グローバル変数を多用していたために、変数の有効期間が曖昧になっていたため、結果として、
 なにかしらの条件下において「まだ使用されている変数まで解放してしまう」というバグを含んでいた。
とか。他にもまぁいろいろと。

> PowerPointの起動に失敗したのでしょうか?
ソースを持っている当事者がわからないのであれば、掲示板を見ている第三者には
もっとわからないと思いますよ。(^^; 再現性が無いならなおの事。

逆に再現性があるようなら、Erl や Err.Source 、さらに発生したプロシージャ名まで
キチンとログ出力するような「デバッグ版」のアプリを作ってテストしてみましょう。