VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/09/23(Sat) 22:55
投稿者ダンボ
Eメール
URL
タイトルサンプルありがとうございます

neptune さん、サンプルどうもありがとうございます。参考にして下記を試してみました。

'///////////////////Module1///////////////////////
Public IMEstatus As Integer

'///////////////////UserForm///////////////////////
Option Explicit
Private clsTxt As Class3

Private Sub CommandButton1_Click()
    With clsTxt
        MsgBox "TextBox1のIME : " & .Items(1).IMEMode & vbCrLf & _
               "TextBox2のIME : " & .Items(2).IMEMode & vbCrLf & _
               "TextBox3のIME : " & .Items(3).IMEMode & vbCrLf
    End With
End Sub

Private Sub UserForm_Initialize()
    Set clsTxt = New Class3
    clsTxt.AddItem = Me.TextBox1
    clsTxt.AddItem = Me.TextBox2
    clsTxt.AddItem = Me.TextBox3
End Sub

Private Sub UserForm_Terminate()
    Set clsTxt = Nothing
End Sub

'///////////////////////////Class3/////////////////
Option Explicit

Private clsItem As Class4
Private mCollection As Collection

Public Property Let AddItem(ptxt As MSForms.TextBox)
    Set clsItem = New Class4
    Set clsItem.SetTextBox = ptxt
    mCollection.Add clsItem
End Property

Public Property Get Items(pNum As Long) As MSForms.TextBox
    Set Items = mCollection(pNum).GetTextBox
End Property

Private Sub Class_Initialize()
    Set mCollection = New Collection
End Sub

Private Sub Class_Terminate()
    Set mCollection = Nothing
End Sub

'////////////////////////Class4/////////////////////
Option Explicit

Private WithEvents mTxt As MSForms.TextBox

Property Set SetTextBox(ptxt As MSForms.TextBox)
    Set mTxt = ptxt
End Property

Property Get GetTextBox() As MSForms.TextBox
    Set GetTextBox = mTxt
End Property

Private Sub Class_Terminate()
    Set mTxt = Nothing
End Sub

Private Sub mTxt_Enter()
    mTxt.IMEMode = IMEstatus
End Sub

Private Sub mTxt_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    IMEstatus = mTxt.IMEMode
End Sub

問題点:mTxt_EnterとmTxt_Exitイベントが発生しません。ネットで調べてみると
「テキストボックス(MSForms.TextBox)をクラス化しても「Enter」や「Exit」のイベントはトラップできません。」(orz)
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_040.html

このページにその対策が書いてあるようなのですが、現時点で理解できていません!!
土日にじっくり考えて見ますね。(いや1週間はかかるかも)


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -