同じプログラムでExcel2000とExcel2003を処理させるには?

解決


名雪  2006-07-12 22:03:37  No: 95991

名雪です。

Excelを制御するプログラムを作成しているのですが
まずExcel2003導入のPCでコンパイルを行うとExcel2000導入のPCにて処理できずエラーになってしまい、
Excel2000導入のPCでコンパイルを行うとExcel2000およびExcel2003で問題なく実行できておりました。

ですがExcel2003で機能制御する
Application.CommandBars.DisableCustomize = True
というコードを追加しますとExcel2000搭載のPCではコンパイルできません。
※ 2000の時点では無い機能のため

そこで上記の制御だけをもったDLLを別に用意し
Excel2003の時だけDLLを呼ぶことを考えて作成しました。

DLL作成環境であるExcel2003導入のPCですと理想通り処理がされたのですが、
他のExcel2003導入のPCで処理をさせることができませんでした。
※ 「ActiveXコンポーネントが作成できません。」とでます。

DLLについても知識不足なところですが
別にインストールするツールが必要なのでしょうか?

宜しくお願い致します。

〜 作成したDLLのソース 〜
Public Sub ToolProtect(ByRef xlsApp As Object, _
                       ByRef blnProtect As Boolean)
    If blnProtect = True Then
        xlsApp.CommandBars.DisableCustomize = True
    Else
        xlsApp.CommandBars.DisableCustomize = False
    End If
End Sub

〜 呼び出す側のコード 〜
sub Main()
  dim xlsApp as Excel.Application
  set xlsApp = new Excel.Application

  (略)
  
  Call ToolProtect(objXlApp, True)
  xlsApp.Visible = true
End if


もげ  2006-07-12 22:30:09  No: 95992

過去ログを置いておきますね。
ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200604/06040004.txt


名雪  2006-07-13 05:03:33  No: 95993

もげ様

有難う御座います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加