[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックスをダブルクリックすると2回目にエラーが起きる』(初心者)
こんにちは。
リストボックス内に表示したデータをダブルクリックしたデータに飛ぶためのコードですが、コード画面での実行(モーダル?)では何度実行しても問題なく動作していますが、通常通り全て起動している状態(モードレス)だと2回目にエラーになってしまいます。
手動でダブルクリックの時間を空けたり、一度参照用ファイルを全面表示したりすると何度かはエラーを回避できることもありますが、それも不安定です。
下がそのコードです。
エラーを回避する方法はあるでしょうか?
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim myBook As Workbook Set myBook = Workbooks("参照用ファイル.xls") With myBook.Worksheets("参照用ファイルの2シート目") Workbooks("参照用ファイル.xls").Activate .Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 1), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 29)).Select
End With End Sub
また表示形式ですが、現在のコードだとダブルクリック1回目は参照用ファイルが全面になりますが、tab+altで再度ユーザーフォームのファイルを全面にしてからリストボックス内のデータを再クリックすると、今度は上記のユーザーフォームを開いているExcelファイルが全面に表示されたままになってしまいます。
ダブルクリック時の理想としては、常にユーザーフォームを前面に表示したまま、背面のExcelファイルの上に参照用ファイルが来る状態を考えています。
申し訳ありませんが、教えていただけませんでしょうか。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
>2回目にエラーが起きる
エラーはどんな警告文ですか?
どの行で止まるんですか?
(半平太) 2019/09/19(木) 19:42
ご返信ありがとうございます。
実行時エラー1004
RangeクラスのSelectメソッドが失敗しました。
と出ています。
エラーの出る行は
.Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 1), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 29)).Select
ここです。
申し訳ありません。
(初心者) 2019/09/20(金) 09:24
>RangeクラスのSelectメソッドが失敗しました。
これは最前面のシート以外のセルをSelectしようとしたときに出るエラーですね
Application.Goto Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 1), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 2, 29))
としてみたらどうでしょう?
(渡辺ひかる) 2019/09/20(金) 10:18
驚きました。これまで悩んでいたエラーが全く起こらなくなりました。
ありがとうございます。
これで業務がスムーズになります。
教えていただいて大変失礼ですが、ユーザーフォームを常に全面に表示し、その背面でExcelファイルのみ入れ替わるコードなどはありますでしょうか。ユーザーフォームはモードレスで開いています。
現在はその検索時に、検索先のファイルをアクティブにするようにしているためユーザーフォームが隠れてしまう状況です。
Excelファイルは基本的に全面で開いており、ユーザーフォームは画面の6割程度の大きさで中心にあり、左上に拡大縮小ボタンを付けていますので常にフォームを全面に置いておきたいと思っています。
大変申し訳ありませんが、何卒よろしくお願いいたします。
(初心者) 2019/09/20(金) 11:05
こちら Excel2010 ですが モーダレスでユーザーフォームを表示すれば ブックを切り替えても 表示されたままですけど・・
(渡辺ひかる) 2019/09/20(金) 11:56
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.