名雪です。
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
過去ログを置いておきますね。
ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200604/06040004.txt
もげ様
有難う御座います。
ツイート | ![]() |