2016-03-31 13 views
-1

VBEについて ワークシートが存在しない場合、ワークシートが作成され、Sheet1にコマンドボタンが追加されます。また、apprを追加します。プライベートサブコマンドのcommandbutton1_clickのコード。 これはすべて正常に動作します。 「サブコード」は、それがあれば、既存の(オブジェクト)にチェックすべきこと(CommandButton1という用)サブコードを追加する前に、しかしExcel vba削除サブコード

Dim Code as String 
Code = "Private sub CommandButton1_Click()" & vbCrLf 
[..] 
Code = Code & "End Sub" 

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule 
    .insertlines .CountOfLines + 1, Code 

すでに存在している:これは、新しいサブを追加する既存のコードの一部です。新しいコードを追加する前に削除してください。

答えて

0

次のようになります。

If ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.CountOfLines <> 0 Then 
    ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.DeleteLines 1, ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.CountOfLines 
End If 
0

私のために、次の作品は、必要に応じてサブ名を変更します。

Dim VBCodeMod As CodeModule 
Dim StartLine As Long 
Dim HowManyLines As Long 
Set VBCodeMod = Workbooks(1).VBProject.VBComponents("Sheet1").CodeModule 
With VBCodeMod 
    StartLine = .ProcStartLine("Worksheet_BeforeRightClick", vbext_pk_Proc) 
    HowManyLines = .ProcCountLines("Worksheet_BeforeRightClick", vbext_pk_Proc) 
    .DeleteLines StartLine, HowManyLines 
End With 
関連する問題