Accessフォーラムの過去ログIndexページAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forumサポートフォーラム

     

No.5890 コンボボックスに入力した文字列のふりがなを表示するテキストボックス

■5890 /inTopicNo.1)  コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ いわた 一般(14回)-(2003/02/12(Wed) 15:56:02)

      AC Ver:[Ac2000] 
      OS Ver:[WinXP] 

      コンボボックスに入力した文字列のふりがなを表示するテキストボックスを作りたいのですけ・・・
      どなたか教えてください



■5896 /inTopicNo.2)  Re[1]: コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ まる 助手(857回)-(2003/02/12(Wed) 17:29:02)

      AC Ver:[Ac2000] 


      こんにちは、まるです。
      
      無理だと思います。
      
      IMEを直接制御でフリガナ、つまり
      キーボードから入力された文字を取得って
      VBのサンプルを見たことならありますが。
      Accessのコンボボックスだと hwndとか取得できないし
      できるのかなぁ?
      
      
      新規入力はテキストボックス
      みたいな構造を考えてはいかがでしょうか?
      
      
      ではでは ^^)/~~



■5910 /inTopicNo.3)  Re[2]: コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ いわた 一般(17回)-(2003/02/13(Thu) 08:39:11)

      AC Ver:[Ac2000] 


      テキストボックスのフリガナ入力みたいにしたいのですけど
      無理なのんですかね
      どなたかわかりませんか?



■5930 /inTopicNo.4)  Re[3]: コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ しゃく 一般(45回)-(2003/02/13(Thu) 14:11:24)

      AC Ver:[2000] 


      できた
      フォームにテキストBOX
      ImeText:IMEからの読み込み用
      TextBox:
      コンボボックス
      cmbBox2
      を貼り付け
      
      ’////////////////////////////////////////////////////
      Option Compare Database
      Option Explicit
      
      Private Sub cmbBox2_Exit(Cancel As Integer)
          ImeText.Value = ""
      End Sub
      
      Private Sub cmbBox2_KeyDown(KeyCode As Integer, Shift As Integer)
          Dim ret%
          Dim nSize As Long, lpBuf As String, rc As Long
          Dim hIMC As Long
          Dim G_hWnd As Long
          '[Shift]、[Ctrl] を押しただけで反応することを避ける
          If Shift = 0 Then
              '入力コンテキストのハンドル
              G_hWnd = GetFocus
              hIMC = ImmGetContext(G_hWnd)
                      
              '入力文字のバイト数を得る
              nSize = ImmGetCompositionString(hIMC, GCS_RESULTREADSTR, vbNullString, 0)
                      
              '読みを受け取るバッファを確保
              lpBuf = String(nSize, vbNullChar)
          
              '読みをバッファにコピー
              rc = ImmGetCompositionString(hIMC, GCS_RESULTREADSTR, lpBuf, nSize)
                      
              'ハンドルを開放
              rc = ImmReleaseContext(G_hWnd, hIMC)
                      
              '取得した読みをダミーのテキストボックスのコピー
              If Len(cmbBox2.Text & "") > 0 Then
                  Me.ImeText.Value = Left(lpBuf, nSize)
                  With Me.TextBox
                    '.SelStart = Len(.Value)      '出力位置を既存のテキストの最後尾に置く
                    '.SelText = ImeText.Value    'ダミーのテキストをコピー
                    .Value = .Value & ImeText.Value
                  End With
              End If
          End If
          
      
      End Sub
      
      
      



■5931 /inTopicNo.5)  Re[4]: コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ しゃく 一般(46回)-(2003/02/13(Thu) 14:12:46)

      AC Ver:[2000] 


      モジュール部分
      ’//////////////////////////////////////////////////////////////////
      Option Compare Database
      Option Explicit

      Declare Function GetFocus Lib "user32" () As Long
      'IME API
      Declare Function ImmGetContext Lib "IMM32" (ByVal hWnd As Long) As Long
      Declare Function ImmGetCompositionString Lib "IMM32" Alias "ImmGetCompositionStringA" (ByVal hIMC As Long, ByVal dwIndex As Long, ByVal lpBuf As String, ByVal dwBufLen As Long) As Long
      Declare Function ImmReleaseContext Lib "IMM32" (ByVal hWnd As Long, ByVal hIMC As Long) As Long

      '(ImmGetCompositionString)
      Public Const GCS_COMPATTR = &H10
      Public Const GCS_COMPCLAUSE = &H20
      Public Const GCS_COMPREADATTR = &H2
      Public Const GCS_COMPREADCLAUSE = &H4
      Public Const GCS_COMPREADSTR = &H1
      Public Const GCS_COMPSTR = &H8
      Public Const GCS_CURSORPOS = &H80
      Public Const GCS_DELTASTART = &H100
      Public Const GCS_RESULTCLAUSE = &H1000
      Public Const GCS_RESULTREADCLAUSE = &H400
      Public Const GCS_RESULTREADSTR = &H200 '読みを得る
      Public Const GCS_RESULTSTR = &H800

      つづく



■5932 /inTopicNo.6)  Re[5]: コンボボックスに入力した文字列のふりがなを表示するテキストボックス
    □投稿者/ しゃく 一般(47回)-(2003/02/13(Thu) 14:13:11)

      AC Ver:[2000] 


      Type POINTAPI
      X As Long '点のx座標
      Y As Long '同、y座標
      End Type

      Type RECT
      Left As Long '矩形の左上隅のx座標
      Top As Long '同、y座標
      Right As Long '矩形の右下隅のx座標
      Bottom As Long '同、y座標
      End Type
      Public Const LF_FACESIZE = 32

      Type LOGFONT 'Font
      lfHeight As Long 'キャラクタの高さ
      lfWidth As Long 'キャラクタの幅(0 で標準的プロポーション)
      lfEscapement As Long '相対的出力角度(単位:1/10度)
      lfOrientation As Long '回転角度(単位:1/10度)
      lfWeight As Long 'キャラクタの線幅(FW_BOLD, FW_NORMAL)
      lfItalic As Byte 'イタリックの時 Chr$(1)、通常 Chr$(0)
      lfUnderline As Byte 'アンダーライン付きの時 1
      lfStrikeOut As Byte '横線付きの時 1
      lfCharSet As Byte 'キャラクタセットの指定
      lfOutPrecision As Byte '常に OUT_DEFAULT_PRECIS = 0
      lfClipPrecision As Byte ' 同上
      lfQuality As Byte 'DEFAULT_QUALITY, DRAFT_QUALITY, PROOF_QUALITY
      lfPitchAndFamily As Byte 'DEFAULT_PITCH,FIXED_PITCH, VAIABLE_PITCH
      ' lfFaceName As String * LF_FACESIZE 'タイプフェース名
      lfFaceName(LF_FACESIZE - 1) As Byte 'タイプフェース名
      End Type




■5957 /inTopicNo.7)  しゃく さーーん
    □投稿者/ いわた 一般(20回)-(2003/02/15(Sat) 09:37:49)

      AC Ver:[Ac2000] 


      コンパイルエラー
      定数、固定長の文字列、配列、ユーザー定義型および Declare ステートメントは、オブジェクト モジュールのパブリック メンバとしては使用できません。
      ってエラーがでるんですけど
      なぜでしょう??



■5958 /inTopicNo.8)  Re[7]: Declare はモジュール部分に
    □投稿者/ まる 助手(865回)-(2003/02/15(Sat) 16:57:28)

      AC Ver:[Ac2002] 


      こんにちは
      
      しゃくさではないですが。
      
      しゃくさんのコードAPIの宣言部分に
      >モジュール部分
      て書いてあるでしょ?
      フォームのクラスモジュールに書いたのではないですか?
      
      もしクラスモジュール内に書きたいのならば、
      Private宣言しないとだめですよ。
      
      
      >Declare Function GetFocus Lib "user32" () As Long
      これを使うとコンボボックスのエディタ部分の
      ハンドルを捕まえられるのですね。
      知らなかった。
      
      ただ、実行してみるとわかると思いますが、
      Accessのデフォルト機能のフリガナとはやっぱ違いますので、
      それでもいいのかな?と思いますが。
      
      ではでは ^^)/~~



■5959 /inTopicNo.9)  Re[8]: Declare はモジュール部分に
    □投稿者/ しゃく 一般(48回)-(2003/02/15(Sat) 18:59:49)

      AC Ver:[2000] 


      アドレス公開してくれれば、サンプルお送りしますよ

      まるさん
      フォロー有難うございました



■5974 /inTopicNo.10)  しゃくさん
    □投稿者/ いわた 一般(21回)-(2003/02/18(Tue) 15:47:44)

      AC Ver:[Ac2000] 


      サンプルを送っていただければ幸いです
      いわた宛でお願いします

このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。

 

ページの先頭へ 前ページへ戻る