tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: VB6参照設定
投稿日: 2011/12/04(Sun) 20:42
投稿者あいあい
> であれば問題ないように思いますが、エラー発生場所はどのようにして確認されたのでしょうか?
> 又、Excel はどの時点で表示しているのでしょうか?
> (CommandBars の前に表示させても同じでしょうか?)
> 実行環境にもVB6.0 が入っているのなら、IDE 上ではどうなのでしょうか?

エラーが起こるPCはユーザーさんのPCでVB6は入っていません。
またユーザーさんのPCでしか再現しない現象なので、試行錯誤がやりにくい状態です。

エラー場所の特定、EXCELの表示に関してですが、
下記のように一つの処理が完了するごとにメッセージをログに出すようにして
特定しました。(gfuncAnalysisLog:ログファイルにメッセージ表示する関数)

 objXlsGraphSheet.Activate
 Call gfuncAnalysisLog("Command3")  'ログ出力3

 objXlsGraphSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=False
 Call gfuncAnalysisLog("Command4") 'ログ出力4

  objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
  Call gfuncAnalysisLog("Command5") 'ログ出力5

   (中略)

   objXlsApp.Visible = True 'エクセルファイル可視

さらにErrオブジェクトのNumberプロパティをログに表示させています。
エラーが起こるPCにて得たログファイルは

002 2011/12/01 08:10:56    Command1-OK
003 2011/12/01 08:10:56    Command2-OK
004 2011/12/01 08:10:56    Command3-OK
005 2011/12/01 08:10:56    Command4-OK
006 2011/12/01 08:10:56    gfncGraphSave-'~' メソッドは失敗しました: '~' オブジェクトErr.Number=-2147319779

Command5である
objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
でエラーとなったと判断しました。

> 又、開発環境で新規に、CommandBars("Worksheet Menu Bar").Enabled だけを動作させる
> だけの EXE を作って試して見ても同様にエラーがでますか?
> ( Microsoft Data Formatting Object Library の参照設定はせずに)
>
> それでも同じなら、実行時バインディングのコードで試したらどうなりますか?

ユーザー環境のみで起こる現象なので、試行錯誤がやりにくいですが
・CommandBars の前にEXCEL表示させる。
・CommandBars("Worksheet Menu Bar").Enabled だけのEXE
・実行バインディングコード
を試してみます。

が、これ以外にもVB->EXCELを操作する部分で
開発環境での動作とユーザー環境での動作が異なることがあるので
参照設定の問題ではないかと疑っています。

何度も同じ質問をして申し訳ないのですが、
「Microsoft Office 11.0 Object Library」を参照していなくても
問題ないでしょうか。

よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。