|
▼ウーロン さん:
こんばんは。
>モジュールに不具合があり、入れ換えしたいのですが
>下記コードでは ←ココで落ちる で
>環境
>試行環境 win2k エクセル2k
>運用環境 上記 + winxp エクセル203
>
>'エクセル2003での利用時は、ツール/マクロ/セキュリティ
>' /VBプロジェクトへのアクセスを信頼するにチェック
>'Visual Basic for Application Extensiblityの参照設定
私は、Excel2002、Win2000で投稿されたコードを試しましたが、
仰られたとおり落ちました。
下記の修正では正常に作動しました。
>Sub Del_All_TGBKMdl()
> Dim myVBComp
> Dim W_Book As Workbook
>
> Dim TG_BK As String
>
> TG_BK = "C:\CP\2007\200712\Book1.xls"
>
> On Error GoTo Err1
>
> Set W_Book = Workbooks(TG) 'TG_BKが開いているとき
>
> For Each myVBComp In W_Book.VBProject.VBComponents
>
> If myVBComp.Type = 100 Then
> 'Documentモジュール(ThisWorkbokやSheet)なら消去
> With myVBComp.codemodule
> .DeleteLines 1, .CountOfLines
> End With
>
> Else
> 'Documentモジュール(標準モージュール、クラスモジュール、Formなど)以外なら削除
> 'Application.VBE.ActiveVBProject.VBComponents.Remove myVBComp
W_Book.VBProject.VBComponents.Remove myVBComp
>
> End If
>
> Next myVBComp
>
> W_Book.Save '←ココで落ちる
>
> Set W_Book = Nothing
>
> Exit Sub
>
>Err1:
>
> MsgBox Err().Number & vbLf & Err().Description
> Resume
>End Sub
バージョンが違った場合でも正常に作動するか試してみて下さい。
>こんな、ウイルスまがいの手法ではなく、Bookを差し替える方法を検討する
事をお勧めします。
私は、neptuneさんとはちょっと意見が違います。
私は、再利用可能なプロシジャーを沢山資源として貯蓄しておいて、
初回作成のプログラムより、2回目、2回目作成のプログラムより、3回目と
作成時間を少しでも短縮したいと考えています。
再利用可能なプログラムを色んな種類のブックに適応した後にバグ修正や
機能追加なりを既に作成した多くのブックに適応させる(昔のパッチに似ています)
等便利なツールがあれば良いなあ と思っています。
こんなツールを将来、ウーロンさんが作成してくれたら・・・、
と期待しています。
ウイルスまがいもうまく使えば、薬になりますよね!!
これに関しては、以前にも
www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=1619;id=
ここに私の意見を記述させていただきました。
Vbprojectに関して、掲示板で投稿することに懸念される方の考え方も私は
決して違うとは思いませんが、ここで意見交換をしないとせっかくのVBAの可能性
を潰してしまいます(きっと不具合もあるでしょうから、その回避方法など)。
仕様によっては、他の方法があるとか、Vbprojectを操作すれば
こんな方法もある等の投稿をここですることが正しい使用方法の
指針になると思いますが、いかがですか?
|
|