|
▼acch さん:
おはようございます。
>book1上のUserform1 をクリックすると boo2のUserform1 が起動するようにしたいのです。
↑という仕様ならば・・・、
>
>試しに下記のように記述してみましたが、動きません。
>どこに問題がありますか?????
提示されたコードでは、仕様とまったく違います。
>
>' Sub main() を起動
>' Userform1 が表示される
> --- ここまでは動作しているようです --------
>
>’==== 以下、Book1 の ThisWorkbook に記述 =
>Sub main()
> Call book1_opn '対象のブックをオープン
> UserForm1.Show vbModeless
>End Sub
>Function getfrm(frmnm) As Object
'このFunctionは、Book1にあるロードされているユーザーフォームが対象です
> Dim frm As Object
> Set getfrm = Nothing
> For Each frm In UserForms
> If UCase(frm.Name) = UCase(frmnm) Then
> Set getfrm = frm
> Exit For
> End If
> Next
>End Function
>
>’==== 以下、Book2 の Sheet1 に記述 =
>Private Sub Worksheet_SelectionChange(ByVal target As Range)
'このイベントプロシジャー、
'冒頭の仕様で記述された
'「book1上のUserform1 をクリックすると boo2のUserform1 が起動するようにしたいのです。」
'仕様とは関係ないプロシジャーですよね!!
> Dim frm As Object
> Set frm = Workbooks("book1.xls").getfrm("userform1")
'↑これで取得できるは、Book1のUserform1ですよね?(ロードされていれば)
> If Not frm Is Nothing Then
> frm.Show
> End If
>End Sub
私には、仕様とコードの関係がよくわかりません。
次投稿に続く。
|
|