投稿日 | : 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 、さらに発生したプロシージャ名まで
キチンとログ出力するような「デバッグ版」のアプリを作ってテストしてみましょう。