個人用マクロブックから非マクロブック含めて、イベントプロシージャ(SheetSelectionChange)を実行させたい
個人用マクロブックから非マクロブック含めて、イベントプロシージャ(SheetSelectionChange)を実行させたい 拡張子を変更できない理由があり、非マクロブックで下記のイベントプロシージャをどうしても使いたいという状況です。 個人用マクロブックから下記のイベントをあれこれ変形させて実行できるかいろいろやってみたのですが、できませんでした。 (下記のイベントは、通常のマクロブックに直接書いた時はそのマクロブックでイベント実行されます。) エラーにもならない為、何が足りないのかすら分かっていません。 (個人用マクロブックも Microsoft Excel Objects >のThisWorkbook エディタに記述しています。) ご教授いただければ幸いです。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range) If Not Intersect(Target, Range("A2:X5000")) Is Nothing Then If Target.Address = Target.EntireRow.Address Then UserForm1.TextBox1.Value = Cells(Target.Row, 1).Value UserForm1.TextBox2.Value = Cells(Target.Row, 2).Value UserForm1.TextBox3.Value = Cells(Target.Row, 3).Value UserForm1.TextBox4.Value = Cells(Target.Row, 4).Value UserForm1.TextBox5.Value = Cells(Target.Row, 5).Value UserForm1.TextBox6.Value = Cells(Target.Row, 6).Value UserForm1.TextBox7.Value = Cells(Target.Row, 7).Value UserForm1.TextBox8.Value = Cells(Target.Row, 8).Value UserForm1.TextBox9.Value = Cells(Target.Row, 9).Value UserForm1.TextBox10.Value = Cells(Target.Row, 10).Value UserForm1.TextBox11.Value = Cells(Target.Row, 11).Value UserForm1.label = Target.Row UserForm1.Show End If End If End Sub
Visual Basic・36閲覧・250
ベストアンサー
こんにちは。 主さまのやりたいことをエクセルに実装するには 1) personalブックに class1を新規追加し、 Public WithEvents myApp As Application Private Sub myApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Range("A2:X5000")) Is Nothing Then If Target.Address = Target.EntireRow.Address Then UserForm1.TextBox1.Value = Cells(Target.Row, 1).Value UserForm1.Label1 = Target.Row UserForm1.Show End If End If End Sub thisworkbookのコード Dim cc As New Class1 'ブック起動時のイベント Private Sub Workbook_Open() Set cc.myApp = Application End Sub 'ブックを閉じる直前のイベント Private Sub Workbook_BeforeClose(Cancel As Boolean) Set cc = Nothing End Sub これで、テキストボックス1だけの処理です。 必要な分、コードをもどしてください(テスト用にカットしました) 仕組みは、「個人用ブック」に、エクセル自身のイベント、 全部処理させるコードです。 当然、「別のブックを開いているとき」の判定とか、細かく条件を追加しないと、行を選択するたびに、フォームが表示されます フォームも個人用ブックに存在、これは、すでにあるはずですよね。
質問者からのお礼コメント
おぉー!すごすぎます! ちょうど、今、クラスについて勉強を始めたところでした。 何かのサイトで、New は分けろと書いてありましたがこういうことだったんですね! ありがとうございます! 細かい条件は自力で頑張ってみます。 本当に助かりました。ありがとうございます。
お礼日時:6/30 21:00