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

タイトル Re^8: VB6参照設定(修正)
投稿日: 2011/12/10(Sat) 12:40
投稿者あいあい
花ちゃん様、魔界の仮面弁士様ありがとうございます。

> > >    xlApp.CommandBars("Worksheet Menu Bar").Enabled = True
> 例の Microsoft Office X.X Object Library を追加したうえで、
>    'objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
>    
>    Dim bars As Office.CommandBars
>    Set bars = xlApp.CommandBars
>    
>    Dim bar As Office.CommandBar
>    Set bar = bars("Worksheet Menu Bar")
>    
>    bar.Enabled = True
> に変更した場合、どの段階でエラーになりますか?

Set bars = xlApp.CommandBars で

「実行時エラー '-2147221163 (80040155)':
'~' メソッドは失敗しました: '~' オブジェクト

となります。
Microsoft Office 11.0 Object Libraryの参照設定の優先順位を変えてみましたが
すべてダメでした。

> > 「Microsoft Office 11.0 Object Library」を参照していなくても
> ・CommandBar オブジェクト
> ・FileSearch オブジェクト
> ・Assistant オブジェクト
> を使う場合は、MSO.DLL を参照していた方が良いとは思います。

了解しました。

> また、開発環境または実行環境に複数バージョンの Office が導入されている場合や、
> 実行環境と開発環境の Office バージョンが異なる場合においては、
>  objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
> の表記を避けた方が無難そうです。
>
> 混在環境で実行する場合は、バージョン間の問題が発生しそうな箇所に限って
> レイトバインディングで処理させるか、もしくは上記のように
> 個別のバージョン固有型に変換させた上で利用することで改善できる場合があります。


実行環境もOffice2003(SP3)ですが、
2007の互換機能パックや
Office2010上 でファイルの種類で2003を選択して保存したファイルを読み込んだときにできたと思われるDLLが存在しています。


> 実行環境と開発環境の Office バージョンが異なる場合においては、
>  objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
> の表記を避けた方が無難そうです。

実行環境と開発環境を厳密に同じにすることはとても難しいので
objXlsApp.CommandBars("Worksheet Menu Bar").Enabled = True
は使用しないことにします。

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

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