- ベストアンサー
RefEditで完全にハマっています。
- RefEditを使用している際に問題が発生しています。UserFormにRefEditを貼り付け、表示した後、RefEditの右ボタンをクリックすると、formが自動的に閉じてセルの範囲選択状態になります。しかし、この状態から戻ると、formとエクセル自体の動作が停止してしまいます。
- RefEditから制御が戻らないため、RefEditを使用した後もエクセルの動作が停止してしまいます。また、formのshowmodalをtrueにするとformが勝手に閉じてしまう問題も発生します。
- RefEditの設定やformとの関係に問題があるようですが、具体的な解決方法はわかりません。この問題に詳しい方からの助言をお待ちしています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 ざっと MSDN ライブラリの情報を拾ってみました。 基本的に ReEdit コントロールは問題アリアリです。標準コントロール ではないためか、このようなエラーがいつまでも放置されてます。 「修正しました」と発表されても実は修正されていなかったりしますの で、できれば使うのを控えた方が吉でしょう。 ・[XL2000] RefEdit コントロール使用時にキーボード ショートカットを使用して範囲を指定できない http://support.microsoft.com/default.aspx?scid=kb;JA;291110 ・[XL2000] RefEdit コントロールを使用する Excel インスタンスを複数開くとマクロの起動時に VBA エラーが発生する http://support.microsoft.com/default.aspx?scid=kb;JA;320262 ・[XL2000] ユーザー フォームを閉じられない現象について http://support.microsoft.com/default.aspx?scid=kb;ja;210759 ・[XL2000] UserForm を閉じた後に、 RefEdit コントロール が表示されます。 http://support.microsoft.com/default.aspx?scid=kb;ja;213673 ・Excel マクロで RefEdit コントロールを使用する場合、一部のイベントが実行しません。 http://support.microsoft.com/default.aspx?scid=kb;ja;870756 ・RefEdit コントロールはモードレスフォームでは使えない(英語) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/f3objrefedit.asp 代替案ですが、Inputbox メソッドで同等のことが可能です。ただし、 アクティブブック内しかできませんが。 1. 標準モジュールに以下のユーザー定義関数をコピペ Function GET_ADDRESS(ByRef strCAPTION) As String Dim rngTEMP As Range On Error Resume Next Set rngTEMP = Application.InputBox( _ Prompt:=strCAPTION, _ Type:=8) If rngTEMP Is Nothing Then GET_ADDRESS = "False" Else GET_ADDRESS = rngTEMP.Parent.Name & "!" _ & rngTEMP.Address End If Set rngTEMP = Nothing On Error GoTo 0 End Function 2. セルアドレスを表示するテキストボックスを配置 3. 2.の横にこの関数を呼び出すボタンを配置 4. 3.のボタンに以下のコードを追加 Private Sub CommandButton1_Click() Dim strADDRESS As String 'フォームを一時的に非表示 Me.Hide 'ユーザー定義関数を呼び出してセルアドレスを取得 strADDRESS = GET_ADDRESS("セルを選択") '文字列で False ならキャンセル If UCase$(strADDRESS) <> "FALSE" Then Me.TextBox1.Text = strADDRESS End If 'フォーム再表示 Me.Show End Sub
お礼
KenKen_SP様、ご指導ありがとう御座います。KenKen_SP様のご指導が無ければ、1週間は悩んで、自己解決できずに諦めざるを得ない結果だったと思います。本当にありがとう御座います。 その上、改善ルーチンまで、伝授して頂いて、感謝の限りです。しかし、同等のコントロールを自作してしまうなんて、力技ならぬ知恵技ってところでしょうか?感動を感じました。早速利用させて頂きます。手点数が、少ないですが御了承ください。 また、宜しくお願い致します。 (VBAって奥が深くて面白い半分、頭痛の種半分って感じでハマっています。自分の頭の硬さを痛感します。)