[[20200529110029]] 『VBAユーザーフォーム アクティブ』(こっこ) ページの最後に飛ぶ

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

 

『VBAユーザーフォーム アクティブ』(こっこ)

おはようございます。
ユーザーフォームをアクティブにしたら
データーブックもアクティブにしたいのですが
別のブックを選択してるとインデックスの範囲外とエラーになってしまうのですがうまくできません;お分かりになられましたらお願いします。

Private Sub UserForm_Activate()

Workbooks("年.xlsm").Activate

End Sub

< 使用 Excel:Office365、使用 OS:Windows10 >


回答でなく、2点確認ですが
 「年.xlsm」は開いてますよね?
 ユーザーフォームはモードレスですよね?

(もこな2 ) 2020/05/29(金) 11:18


 横から失礼します。

 直接の回答ではありません。

 こういうのはどうですか?

 Private Sub UserForm_Click()
  ThisWorkbook.Activate
  ActiveSheet.Activate
 End Sub
(OK) 2020/05/29(金) 11:22

 マクロブックとデータブックを分けてるのですね。

 私のレスはスルー願います。
(OK) 2020/05/29(金) 11:23

もこなさん
回答ありがとうございます。
データーファイルは開いてモードレスはFalseになってます。

沢山のエクセルを開いての操作なので;出来たらユーザーフォームを触る時には
データーファイルをアクティブにする必要があります;
(こっこ) 2020/05/29(金) 12:11


データーファイルにもちろんユーザーフォームを設置してます;

(こっこ) 2020/05/29(金) 12:19


ユーザーフォームは全く関係なくて、単に「年.xlsm」が開かれていないだけな気がする。
(名無し) 2020/05/29(金) 16:28

 >Private Sub UserForm_Activate() 
 >Workbooks("年.xlsm").Activate 
 >End Sub
 をそのまま貼り付けて
 ユーザーフォームを設置しクリックすると
 実行した結果エラーメッセージが出ます。
(名無し) 2020/05/29(金) 16:28と同感です。
(ko) 2020/05/29(金) 16:51

>データーファイルは開いてモードレスはFalseになってます。
別の方からも指摘がありましたが、本当に「年.xlsm」開いてますか?
(拡張子も含めて確認してください。)

一応こちらで↓のようにしてみましたが、ちゃんと「表示したいブック.xlsm」がアクティブになりますよ。(office365/Windows10でテスト)

ユーザーフォームが置いてあるブック
【標準モジュール】

    Sub 表示ボタン()
        UserForm1.Show vbModeless
    End Sub

【UserForm1のモジュール】

    Private Sub UserForm_Activate()
        Workbooks("表示したいブック.xlsm").Activate
    End Sub

(もこな2 ) 2020/05/29(金) 16:54


書き忘れ。↓はどうするのですか?
[[20200526142738]] 『VBAユーザーフォーム リストボックス』(こっこ)

余計なお世話でしょうけど、複数のことをいっぺんに聞いても混乱するでしょうから、1つずつ解決していったらどうですか?

(もこな2 ) 2020/05/29(金) 16:58


okさん
名無しさん

下記の内容でできました。ありがとうございました。

 Private Sub UserForm_Activate()
  Application.ScreenUpdating = True
Workbooks("年.xlsm").Activate
Application.ScreenUpdating = False
End Sub

もこな2さん
ユーザーフォーム表示の際にモードレスですねありがとうございました。
本当にありがとうございました。

(こっこ) 2020/05/29(金) 17:39


 >書き忘れ。↓はどうするのですか?
 解決されていますね
(ko) 2020/05/29(金) 17:59

■1
>ユーザーフォーム表示の際にモードレスですねありがとうございました。
誤解されそうなので一応。
質問については、モーダルは関係ないです。
別ブックをアクティブにしたいということは、そちらを操作したいのかな?とおもって言っただけです。
(別ブックをアクティブにしたときにユーザーフォームの上にのっかったら操作しづらいし)

■2
>下記の内容でできました。ありがとうございました。
ただの勘違いでしょう。
「年.xlsm」を閉じているときに、実行してみてください。同じエラーになりませんか?

■3
ちなみに、本当に「年.xlsm」をアクティブにする必要はあるんですか?
やろうとしていることがわかりませんが、例えば、「検索値=Range("A1").Value」みたいなことをしようとしているなら、アクティブにせずとも「検索値 = Workbooks("年.xlsm").Worksheets(1).Range("A1").Value」のように、ブックやシートを明確に指定すれば済むことです。

■4
「■2」を試していただいてエラーが再現できたら、私や皆さんが言っているように「年.xlsm」が開いてなかっただけでしょうから↓のようにしてみてはどうですか?

    Private Sub UserForm_Activate()
        Dim wb As Workbook

        On Error Resume Next
        Set wb = Workbooks("年.xlsm")
        On Error GoTo 0

        If wb Is Nothing Then
            MsgBox "「年.xlsm」が開かれてません"
        Else
            wb.Activate
        End If

    End Sub

>koさんへ
件のトピックの「(こっこ) 2020/05/29(金) 17:20」をみてのコメントでしょうか?
そうであれば、私は「2020/05/29(金) 17:33」に書き込んだように整理しかしてません。

よって"動いた"のであれば、「(そら) 2020/05/27(水) 12:10」でも正常に動作すると思っています。

(もこな2 ) 2020/05/30(土) 11:02


コメント返信:

[ 一覧(最新更新順) ]


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