動的にプロシージャ、イベントコードを追加 : Excel(エクセル)

Excel2002の場合、下記の設定にしないとエラーになります。
1. メニュー[ツール] - [マクロ] - [セキュリティ] をクリック
2. [セキュリティ] ダイアログ ボックスの [信頼のおける発行元] タブをクリック
3. [Visual Basic プロジェクトへのアクセスを信頼する] チェック ボックスをオンにします。
(注意:この設定の場合、ウイルスに感染しやすくなります。使わない時は設定を元に戻して下さい。)

Excel Tipsメニューに戻る

スポンサードリンク



Excel実行画面

実行画面

Excelコマンドボタン 「Sheet2にコードを追加」をクリック

Private Sub CommandButton1_Click()
    '事前に標準モジュール「Sheet2」を作成しておいてください。
    With ThisWorkbook.VBProject.VBComponents.Item("Sheet2").CodeModule
        .InsertLines 1, "Private Sub Worksheet_Change(ByVal Target As Range)"
        .InsertLines 2, "   MsgBox ""Worksheet_Changeイベントが発生しました"""
        .InsertLines 3, "End Sub"
    End With
End Sub

[実行結果]
シート変更時のイベント

スポンサードリンク



Excelコマンドボタン 「ThisWorkbookにコードを追加」をクリック

Private Sub CommandButton2_Click()
    With ThisWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
        .InsertLines 1, "Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)"
        .InsertLines 2, "   MsgBox ""Workbook_SheetChangeイベントが発生しました"""
        .InsertLines 3, "End Sub"
    End With
End Sub

[実行結果]
ブック変更時のイベント

Excelコマンドボタン 「Module1にコードを追加」をクリック

Private Sub CommandButton3_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    '事前に標準モジュール「Module1」を作成しておいてください。
    With ThisWorkbook.VBProject.VBComponents.Item("Module1").CodeModule
        .InsertLines 1, "Public Sub ExTest()"
        .InsertLines 2, "   MsgBox ""ExTestが呼び出されました"""
        .InsertLines 3, "End Sub"
    End With
End Sub

Private Sub CommandButton3_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Call ExTest
End Sub

[実行結果]
標準モジュールに追加した結果

スポンサードリンク





Excel Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


関連コンテンツ

Copyright (c) Excel-Excel ! All rights reserved