
UserFormにRefEditを貼り付けて、showします。
RefEditの右ボタンをクリックすると、formが自動的に閉じて、セルの範囲選択状態になります。(フォームのタイトルは表示されていません)任意のセルを選択してエンターキーを押すと、選択範囲が点線で囲まれた状態で、formに戻ります。ここからが問題です。
formの中はもちろん、エクセル自体もなにも動作しないようになってしまいます。ウィンドウズのスタートのエクセルをクリックしてみると一度閉じて再度クリックするとRefEditのセル範囲選択状態が消えていません。(formの後ろでまだ動いている)多分、RefEditから制御が帰ってこないからだと思いますが、改善の方法がわかりません。formとRefEditの設定の関係だと思います。ためしに、別のformを作成し、RefEditを貼り付けて動作確認してみると正常に動作します。
何の設定が間違っているのでしょうか?どなたか?教えて頂けないでしょうか?宜しくお願い致します。
(formのshowmodalをtrueにするとformに戻ってきたときにform内の任意の場所をクリックすると勝手にformが閉じます。bookを閉じずに、再びformを表示しRefEditを選択した後、formに戻ってくると今度は、フォーム内のマルチページは選択できるようになりますが、閉じるボタンが効きません。formとRefEditの設定の関係のような気がしますが、全く判りません)
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。ざっと MSDN ライブラリの情報を拾ってみました。
基本的に ReEdit コントロールは問題アリアリです。標準コントロール
ではないためか、このようなエラーがいつまでも放置されてます。
「修正しました」と発表されても実は修正されていなかったりしますの
で、できれば使うのを控えた方が吉でしょう。
・[XL2000] RefEdit コントロール使用時にキーボード ショートカットを使用して範囲を指定できない
http://support.microsoft.com/default.aspx?scid=k …
・[XL2000] RefEdit コントロールを使用する Excel インスタンスを複数開くとマクロの起動時に VBA エラーが発生する
http://support.microsoft.com/default.aspx?scid=k …
・[XL2000] ユーザー フォームを閉じられない現象について
http://support.microsoft.com/default.aspx?scid=k …
・[XL2000] UserForm を閉じた後に、 RefEdit コントロール が表示されます。
http://support.microsoft.com/default.aspx?scid=k …
・Excel マクロで RefEdit コントロールを使用する場合、一部のイベントが実行しません。
http://support.microsoft.com/default.aspx?scid=k …
・RefEdit コントロールはモードレスフォームでは使えない(英語)
http://msdn.microsoft.com/library/default.asp?ur …
代替案ですが、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って奥が深くて面白い半分、頭痛の種半分って感じでハマっています。自分の頭の硬さを痛感します。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのフォームでTextBoxがいっ...
-
エクセルVBAでオプションボタン...
-
全てのオブジェクトのプロパテ...
-
LCD 1602ディスプレイの輝度調...
-
エクセル・VBA CheckBoxのオブ...
-
フォーム上の現在アクティブな...
-
現代文読解力開発講座の問題です。
-
C# Form上に配置されたコントロ...
-
カメラスクロールするのを動画...
-
ACCESS2010のVBAでフォーム内ク...
-
Labelコントロールの(左右)余...
-
RefEditで完全にハマっています。
-
カレンダーコントロールの使用...
-
チェックボックスをオンにした...
-
vb.netで画面のコントロールId...
-
ExcelVBAでListViewが使用できない
-
USB I/Oのデジタル信号をvbaで...
-
VBAでオプションボタンによって...
-
パソコンへの「Dropbox...
-
VBA シートのボタン名を変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでオプションボタン...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
EXCELでactivexコントロールを...
-
VBA ユーザーフォームの Keypre...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
チェックボックスをオンにした...
-
ユーザーフォームで動的(Me.Con...
-
chr関数の呼び出しで「プロ...
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
Excel VBA で Richtextboxを使...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
C# Form上に配置されたコントロ...
-
エクセル コントロールツール...
-
変数をコントロール型で使用す...
-
Groupboxの配下のコントロール...
おすすめ情報