Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37641 / 76738 ←次へ | 前へ→

【44259】Re:RefEditを使用したあと
発言  ichinose  - 06/11/11(土) 0:39 -

引用なし
パスワード
   こんばんは。

>申し訳ありません。
>当方winXP、Excel2003の環境です。
この現象、Win2000 & Excel2002 SP-3でも確認しました
(Win98&Excel2000でも確認しました)。


再現手順

・まず、新規ブックにふたつのユーザーフォームを作成してください。
 ユーザーフォームのコントロール配置は以下のとおりです。

 UserForm1   
   コマンドボタン(Commandbutton1)を配置
   
 UserForm2
   RefEdit コントロール(RefEdit1)
   コマンドボタン(CommandButton1)
   のふたつのコントロールを配置
   
 
 次にコードです。

 標準モジュールに
'================================================================
Sub main()
  UserForm1.Show
End Sub


UserForm1のモジュールに
'================================================================
Private Sub CommandButton1_Click()
  UserForm2.Show
  Unload Me
End Sub


UserForm2のモジュールに
'================================================================
Private Sub CommandButton1_Click()
  Unload Me
End Sub


上記のコードを所定のモジュールにコピーします。


1. mainを実行してください。

2. UserForm1が表示されます。
  UserForm1にあるコマンドボタンをクリックしてください。

3. UserForm2が表示されます。

4. RefEditコントロールを選択し
  (表示直後はRefEditにフォーカスがあります)、
  ここにセルアドレスが表示されるようにシート上のセル範囲を選択してください。
  (例セルA1〜A40を選択する)

5. セルアドレスがRefEditコントロールに表示されたら、コマンドボタンを
  クリックしてください。
  UserForm2が消去され、次いでUserForm1が消去されます。

6. セルが選択された状態に戻ります。ここでIMEのモード切替を行ってみてください。
  切り替えが出来なくなっています。


RefEditコントロールはバグが多いですからねえ!!

www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm


回避方法1

UserForm1の上にUserForm2を重ね表示は行わない。


UserForm1のモジュールを

'===============================================================
Private Sub CommandButton1_Click()
  Me.Hide
  UserForm2.Show
  Unload Me
End Sub

とすると、UserForm2を表示する直前にUserForm1が非表示になりますが、

これで上記の再現操作を行ってもIMEのモードの切り替えは可能です。
(Excelから立ち上げなおして試してみてください)


回避方法2
 RefEditコントロールを使用せず、InputBoxメソッドを使う。

UserForm1のモジュールを
'==================================================================
Private Sub CommandButton1_Click()
  On Error Resume Next
  Dim rng As Range
  Set rng = Application.InputBox("範囲を指定して下さい", , , , , , , 8)
  Unload Me
End Sub


として、上記の再現手順で操作してみてください。
この場合もIMEのモードの切り替えは可能です。


検討してみてください。

0 hits

【44218】RefEditを使用したあと ワークス 06/11/9(木) 22:57 質問
【44227】Re:RefEditを使用したあと りん 06/11/10(金) 12:31 発言
【44230】Re:RefEditを使用したあと 仕様です 06/11/10(金) 13:40 発言
【44253】Re:RefEditを使用したあと ワークス 06/11/10(金) 22:05 質問
【44259】Re:RefEditを使用したあと ichinose 06/11/11(土) 0:39 発言
【44261】Re:RefEditを使用したあと ワークス 06/11/11(土) 3:55 お礼

37641 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free