最初の部分は現在動作中です[ 私はハングアップしているようです。モジュールを追加/削除する部分がVBAで動作するときに動作する 「このブックには他のデータソースへのリンクが含まれています」というダイアログが表示されていて、それがハングアップすることに注意してください。 したがって、 0の引数と2も試みたが、まだそれは私が今も "を許可している(hereを見つけることができるよう第2引数がUpdateLinksある) ]再び14/04/2009 編集しvbscriptを使用してxls 2003にプログラムでモジュールを追加します
dim objExcel
dim objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open( "H:\M\X\C.xls", 0 , , ,"PASSWORD!")
Const modpath = "H:\M\V\"
Const modtest = "TEST.cls"
Const modname = "TEST"
On Error Resume Next
Dim vbcomp
Set vbcomp = ActiveWorkbook.VBProject.VBComponents(modname)
objWorkbook.VBProject.VBComponents.Remove vbcomp
objWorkbook.VBProject.VBComponents.Import modpath & modtest
objWorkbook.Save
objWorkbool.Close
set vbcomp = nothing
set objworkbook = nothing
set objExcel = nothing
をハングツール - マクロ - セキュリティ - vbprojectアクセス '
これでスクリプトは終了しましたが、xlsを開いて変更が行われたかどうかを確認しようとすると、「スクリプトの実行に使用されたアカウント」によってシートがロックされていることを知らせるメッセージが表示されます。オープン/なぜそれが正しく制御を解放していない
に通知する「読み取り専用」**
解決されます。 Open( "H:\ M \ X \ Cn.xls"、0) "は問題のある行ですか?他の.xlsファイルでも動作しますか? –
説明のために、あなたのコードはVBA( "ActiveWorkbook")とVBScript(CreateObject)が混在しているように見えます。それがうまくいくかどうか私には驚かされるだろう。 VBAソリューションまたはVBScriptソリューションをご希望ですか? –
divo、Excelアプリケーションオブジェクト(CreateObjectが必要)があれば、VBAの言葉でそれを話すことができます。したがって、Excel.Applicationを作成する前にActiveWorkbookを使用することはできません。 – Adarsha