[[20160412155108]] 『シートモジュールに書かれたマクロ コピペ』(みるみる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートモジュールに書かれたマクロ コピペ』(みるみる)

いつもお世話になっております
御教授頂けたら幸いです

宜しくお願いいたします

シートモジュールに書かれたマクロだけコピーして
別のシートに張る事は可能ですか?

シートのデーターは移動したくありません
シートモージュールには下記のように書いています

Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

  Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

     If Intersect(Target, Range("A1", Range("A" & Rows.Count).End(xlUp))) Is Nothing Then Exit Sub
     Cancel = True

     With UserForm5
         .ComboBox21.Value = Target.Value
         .ComboBox19.Value = Target.Offset(, 1).Value
        .ComboBox22.Value = Target.Offset(, 2).Value
         .ComboBox3.Value = Target.Offset(, 3).Value
          .ComboBox4.Value = Target.Offset(, 4).Value
        .ComboBox5.Value = Target.Offset(, 5).Value
         .ComboBox6.Value = Target.Offset(, 6).Value
         .ComboBox7.Value = Target.Offset(, 7).Value
        .ComboBox8.Value = Target.Offset(, 8).Value
         .ComboBox9.Value = Target.Offset(, 9).Value
          .ComboBox10.Value = Target.Offset(, 10).Value
        .ComboBox11.Value = Target.Offset(, 11).Value
         .ComboBox12.Value = Target.Offset(, 12).Value
          .ComboBox13.Value = Target.Offset(, 13).Value
        .ComboBox14.Value = Target.Offset(, 14).Value
         .ComboBox15.Value = Target.Offset(, 15).Value
          .ComboBox16.Value = Target.Offset(, 20).Value
        .ComboBox17.Value = Target.Offset(, 21).Value
         .ComboBox18.Value = Target.Offset(, 23).Value
         .ComboBox20.Value = Target.Offset(, 16).Value

         .Show vbModeless

     End With

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 マクロによる自動コピペはできますが、一番簡単なのは、コピー元シートのモジュール全体をマウスで選択してCtrl/c。
 コピー先シートのシートモジュールを表示して Ctrl/v。

 あっという間ですよ。

(β) 2016/04/12(火) 16:03


 ちょっと、対処方法の方向が異なりますが、シートモジュールではなく、ThisWorkbookモジュールに以下のように書いておく方法もあります。
 対象シートを増やしたければ、Case 文のシート名を追加すればOK。

 ただし、実際のものがユーザーフォームがらみですので、それとの整合性については
 必要があれば調整願います。(これはシートモジュールにおいても同じですが)

 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Select Case Sh.Name
        Case "Sheet1", "Sheet2"         '対象シートをいくつでも
            '現在のコード
    End Select
 End Sub

 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Select Case Sh.Name
        Case "Sheet1", "Sheet2"         '対象シートをいくつでも
            Application.ScreenUpdating = True
    End Select
 End Sub

(β) 2016/04/12(火) 16:30


β様
色々有難う御座います
ThisWorkbookモジュールに共通の使い方が出来るのですね
勉強になりました

対象シートをマクロで削除して しまうため
どの様な形が良いか迷っていました

今後とも宜しくお願いいたします

(みるみる) 2016/04/12(火) 17:56


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.