今、名簿を登録するシステムを作っているのですが・・・。

やりたいこととしては・・・
入力項目に氏名(漢字)と氏名(カナ)があるのですが
氏名(漢字)のテキストに名前を入れると、
氏名(カナ)のテキストにカタカナで自動に入ってくる
というものです。

参考になるサンプルソースが載っているHPまたは、
直接サンプルソースをくださる方の返答を待っています。

よろしくお願いしますm(__)m

このQ&Aに関連する最新のQ&A

A 回答 (1件)

文化オリエントのOCXのInputmanを使えばFuriganaOnのプロパティをTrueにして


ItxBankNMが漢字入力テキストでItxBankKanaがカナ入力テキストとして
Private Sub ItxBankNM_Furigana(Yomi As String)
ItxBankKana.Text = ItxBankKana.Text & Yomi
End Sub

とすれば簡単に出来ます。

通常のテキストボックスではフリガナ変換はしません。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません。
早速、使ってみようと思います。
ありがとうございました。

お礼日時:2001/03/17 19:27

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBでのカナの自動入力方法について

VBで名前など、漢字で入力したのを、カナの自動入力できる方法はどのようにすればいいでしょうか?
(ACCESSにおけるカナ自動入力と同じ方法のようなものです)

Aベストアンサー

過去スレ 「InputManを使えで解決」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=42751


それ以外に力技で作ることも可能です。
(InputManが現実にあるように)
しかしこの方法は、かなり作りこまないと、実用には難しいと思います。
簡単なフリガナ取得サンプルを載せておきます。

この方法は今は亡き「Visual Basic増強作戦」という超有名サイトで公開されていた、IMEの操作サンプルを元に作ったものです。完全体ではないので、かなりの改造を必要とします。

※サンプル構成
Project1
├Form1(フォーム)
│├TextBox1
│└TextBox2
└Class1(クラス)


--- Form1 ---
Option Explicit
Dim clsKana As Class1

Private Sub Form_Load()
  Text1.Text = ""
  Text2.Text = ""

  Set clsKana = New clsKana
  clsKana.Target = Text1.hwnd
  clsKana.IMEOpen = True
  clsKana.IMEMode = 1
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Set clsKana = Nothing
End Sub

Private Sub Text1_Change()
  If Not clsKana Is Nothing Then
    Me.Text2.Text = clsKana.ResultRead
  End If
End Sub


--- Class1 ---
Option Explicit

Private Declare Function ImmGetOpenStatus Lib "Imm32.dll" (ByVal hIMC As Long) As Long
Private Declare Function ImmSetOpenStatus Lib "Imm32.dll" (ByVal hIMC As Long, ByVal b As Long) As Long
Private Declare Function ImmGetConversionStatus Lib "Imm32.dll" (ByVal hIMC As Long, lpdw As Long, lpdw2 As Long) As Long
Private Declare Function ImmSetConversionStatus Lib "Imm32.dll" (ByVal hIMC As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Private Declare Function ImmGetCompositionString Lib "Imm32.dll" Alias "ImmGetCompositionStringA" (ByVal hIMC As Long, ByVal dw As Long, lpv As Any, ByVal dw2 As Long) As Long
Private Declare Function ImmReleaseContext Lib "Imm32.dll" (ByVal hwnd As Long, ByVal hIMC As Long) As Long
Private Declare Function ImmGetContext Lib "Imm32.dll" (ByVal hwnd As Long) As Long

Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long


Private lngAPIReVal As Long   'APIの戻り値を格納
Private lngIMEHandle As Long  'IMEのコンテキストを格納
Private lngTargetWindow As Long '操作対象ウィンドウのハンドル
Private lngLayoutHandle As Long 'キーボードレイアウトのハンドル

Private Const GCS_RESULTREADSTR = &H200   '結果文字列の読み
'入力モードの定数
Private Const IME_CMODE_NATIVE = &H1  '直接入力
Private Const IME_CMODE_KATAKANA = &H2 'カタカナ
Private Const IME_CMODE_LANGUAGE = &H3 '日本語
Private Const IME_CMODE_FULLSHAPE = &H8 '全角
Private Const IME_CMODE_ROMAN = &H10  'ローマ字
Private Const IME_CMODE_CHARCODE = &H20 'コード入力

'初期変換方式の定数
Private Const IME_SMODE_NONE = &H0     '無変換
Private Const IME_SMODE_PLAURALCLAUSE = &H1 '複合語優先
Private Const IME_SMODE_SINGLECONVERT = &H2 '不明
Private Const IME_SMODE_AUTOMATIC = &H4   '自動
Private Const IME_SMODE_PHRASEPREDICT = &H8 '連文節

Private Sub Class_Initialize()
  lngLayoutHandle = GetKeyboardLayout(0)
End Sub
Private Sub Class_Terminate()
  lngAPIReVal = ImmReleaseContext(lngTargetWindow, lngIMEHandle)
End Sub

Public Property Get Target() As Long
  Target = lngIMEHandle
End Property

Public Property Let Target(lngNewTarget As Long)
  lngAPIReVal = ImmReleaseContext(lngTargetWindow, lngIMEHandle)
  If IsWindow(lngNewTarget) = 0 Then
    Exit Property
  End If
  lngTargetWindow = lngNewTarget
  lngIMEHandle = ImmGetContext(lngNewTarget)
End Property


Public Property Get ResultRead() As String
  Dim strBuff As String * 256
  Dim lngNullCharPos As Long
  Dim lngSpaceCharPos As Long

  '変換結果の「読み」を取得
  lngAPIReVal = ImmGetCompositionString(lngIMEHandle, _
      GCS_RESULTREADSTR, ByVal strBuff, Len(strBuff))

  lngNullCharPos = InStr(strBuff, vbNullChar)
  lngSpaceCharPos = InStr(strBuff, " ")

  If lngNullCharPos > 0 Then
    ResultRead = Left$(strBuff, InStr(strBuff, vbNullChar) - 1)
  ElseIf lngSpaceCharPos > 0 Then
    ResultRead = Left$(strBuff, InStr(strBuff, " ") - 1)
  End If

End Property



Public Property Get IMEOpen() As Boolean
  If ImmGetOpenStatus(lngIMEHandle) = 1 Then
    IMEOpen = True
  Else
    IMEOpen = False
  End If
End Property

Public Property Let IMEOpen(tofNewValue As Boolean)
  If tofNewValue = True Then
    lngAPIReVal = ImmSetOpenStatus(lngIMEHandle, 1)
  Else
    lngAPIReVal = ImmSetOpenStatus(lngIMEHandle, 0)
  End If
End Property


Public Property Get IMEMode() As Long
  Dim lngInputMode As Long
  Dim lngConvertMode As Long
  
  lngAPIReVal = ImmGetConversionStatus(lngIMEHandle, _
      lngInputMode, lngConvertMode)

  '日本語の場合
  If lngInputMode And IME_CMODE_LANGUAGE Then
    '全角ひらがなである
    IMEMode = 1
    'カタカナの場合
    If lngInputMode And IME_CMODE_KATAKANA Then
      '全角の場合
      If lngInputMode And IME_CMODE_FULLSHAPE Then
        '全角カタカナである
        IMEMode = 2
      Else
        '半角カタカナである
        IMEMode = 4
      End If
    End If
  Else
    '全角の場合
    If lngInputMode And IME_CMODE_FULLSHAPE Then
      '全角英数である
      IMEMode = 3
    Else
      '半角英数である
      IMEMode = 5
    End If
  End If

End Property

Public Property Let IMEMode(lngNewMode As Long)

  Dim lngInputMode As Long
  Dim lngConvertMode As Long

  'IMEの初期変換方式と入力モードを取得
  lngAPIReVal = ImmGetConversionStatus(lngIMEHandle, lngInputMode, lngConvertMode)

  '入力モードの設定
  Select Case lngNewMode
  Case 1
    '全角ひらがなの場合
    lngInputMode = lngInputMode And Not IME_CMODE_KATAKANA
    lngInputMode = lngInputMode Or IME_CMODE_FULLSHAPE Or IME_CMODE_NATIVE
  Case 2
    '全角カタカナの場合
    lngInputMode = lngInputMode Or IME_CMODE_LANGUAGE Or IME_CMODE_FULLSHAPE Or IME_CMODE_KATAKANA
  Case 3
    '全角英数の場合
    lngInputMode = lngInputMode And Not IME_CMODE_LANGUAGE
    lngInputMode = lngInputMode Or IME_CMODE_FULLSHAPE
  Case 4
    '半角カタカナの場合
    lngInputMode = lngInputMode And Not IME_CMODE_FULLSHAPE
    lngInputMode = lngInputMode Or IME_CMODE_LANGUAGE Or IME_CMODE_KATAKANA
  Case 5
    '半角英数の場合
    lngInputMode = lngInputMode And Not IME_CMODE_FULLSHAPE
    lngInputMode = lngInputMode And Not IME_CMODE_LANGUAGE
  End Select
  lngAPIReVal = ImmSetConversionStatus(lngIMEHandle, lngInputMode, lngConvertMode)
End Property

過去スレ 「InputManを使えで解決」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=42751


それ以外に力技で作ることも可能です。
(InputManが現実にあるように)
しかしこの方法は、かなり作りこまないと、実用には難しいと思います。
簡単なフリガナ取得サンプルを載せておきます。

この方法は今は亡き「Visual Basic増強作戦」という超有名サイトで公開されていた、IMEの操作サンプルを元に作ったものです。完全体ではないので、かなりの改造を必要とします。

※サンプル構成
Project1
├Form1(フ...続きを読む

Q自動フリガナ機能を実装したい

VB2005で開発をしております。

テキストボックスにおける自動フリガナ機能を実装するため、IMEに
よる変換確定直前の文字列を取得したいのですが、有効な情報が
見つからずに困っています。API等も含めて、ヒントをお教えください。
宜しくお願いします。

Aベストアンサー

WEBで「ふりがな API]で照会してみてください。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200507/05070038.txt
などがあります。
http://hp.vector.co.jp/authors/VA016119/hajimete/cell1.html
ーー
エクセルの機能を利用してフリガナを取得
http://www.bcap.co.jp/hanafusa/VBHLP/excel08.htm
ーー
API利用
http://www.accessclub.jp/bbs2/0017/beginter05890.html

QVB.NETのコンボボックスについて

VB6からVB.NETでプログラミングを始めました。
コンボボックスのクリアの仕方や設定の仕方、また
取り出し方等を教えて下さい。

色々とヘルプも見てみたのですが、よく解りません。
宜しくお願い致します。

Aベストアンサー

クリアだけだと思ってました。
追記します。

Itemを操作します


'登録
For i = 1 To 10
  Me.ComboBox1.Items.Add(i.ToString)
Next

'取得
For i = 0 To Me.ComboBox1.Items.Count - 1
  MsgBox(Me.ComboBox1.Items(i).ToString)
Next

'完全クリア
Me.ComboBox1.Items.Clear()

部分クリア
Me.ComboBox1.Items.RemoveAt(Index値)

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

Q【VB】コンボボックスにデータベースから取り出した値を入れたい

VB2005です。

表題の通りですがやり方がよくわかりません。
データベースに接続し、
SQLで重複しない値を取り出すところまではできています。

SQL=SELECT DISTINCT FieldName FROM TableName

VB6の時はこんなソースでした
Do Until rs.EOF
   Combo1.AddItem.Fields("FieldName")
   rs.MoveNext
Loop

VB2005ではどう書くのでしょう?
よろしくご教授ください。

Aベストアンサー

DataReaderを使用したサンプルです
※DBMSが記述されていないので、接続文字列はアクセスの場合です
※テキスト書きなので試験していません
※DataSetを使用する方法もありますが、コンボボックスに表示する程度ならDataReaderで大丈夫でしょう
※VB2005ならば、TableAdapterという便利なクラスがあるそうです
※VisualStudio2005 まださわってません orz

  Dim dbFilePath As String = "C:\testdb.mdb"
  Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", dbFilePath)
  Dim sql As String = "SELECT DISTINCT FieldName FROM TableName"
  Dim conn As New OleDbConnection(connectionString)
  Dim query As New OleDbCommand(sql, conn)

  Try
    conn.Open()
    Dim reader As OleDbDataReader = query.ExecuteReader()
    While (reader.Read())
      Me.ComboBox1.Items.Add(reader.Item("FieldName"))
    End While
    reader.Close()
  Catch ex As Exception
    MessageBox.Show(ex.Message)
  Finally
    conn.Close()
  End Try

DataReaderを使用したサンプルです
※DBMSが記述されていないので、接続文字列はアクセスの場合です
※テキスト書きなので試験していません
※DataSetを使用する方法もありますが、コンボボックスに表示する程度ならDataReaderで大丈夫でしょう
※VB2005ならば、TableAdapterという便利なクラスがあるそうです
※VisualStudio2005 まださわってません orz

  Dim dbFilePath As String = "C:\testdb.mdb"
  Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Sourc...続きを読む

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

QComboBoxの初期表示値

当方、VB.NETでwindowsMoblie5.0の開発をしております。

そこでComboBoxを使うのですが起動した際の初期表示の値を決めるにはどうすれば良いのですか?
初歩的な質問で申し訳ありませんがご教授のほどよろしくお願い申し上げます。

Aベストアンサー

> そこでComboBoxを使うのですが起動した際の初期表示の値を決める
> にはどうすれば良いのですか?
これを決めるのは『あなた』ですが ・・・

設定したItemsコレクションの中から選択したいのであれば
SelectedIndexにItemsコレクションの項目のインデックス番号を設定します

『選択してください』Itemsコレクションと無関係な文字列を表示してほしいならTextプロパティでしょう
ただしComboBoxStyleがDropDownList以外の場合に限ります

QVB.NET getとsetの概念がわかりません。

GetとSetがどういう働き・意味をもっているのか理解できていません。

たとえばSpecialTextBoxというクラスがあったとします。
***************************************************************
Imports System.Web.UI.MobileControls

Partial Class SpecialTextBox
Inherits System.Web.UI.MobileControls.MobileUserControl

Public Property Item() As SelectionList

Get
Return Me.CheckBox
End Get
Private Set(ByVal value As SelectionList)
Me.CheckBox = value
End Set

End Property

End Class
****************************************************************

ここでのGet Setはどういう動き・働きをしているんでしょうか?
わかる方がいたらご助言お願いいたします。
(サンプルソースなどがあれば理解しやすいかもしれません。。)

GetとSetがどういう働き・意味をもっているのか理解できていません。

たとえばSpecialTextBoxというクラスがあったとします。
***************************************************************
Imports System.Web.UI.MobileControls

Partial Class SpecialTextBox
Inherits System.Web.UI.MobileControls.MobileUserControl

Public Property Item() As SelectionList

Get
Return Me.CheckBox
End Get
Private Set(ByVal value As Sele...続きを読む

Aベストアンサー

getはそのインスタンスから値を取り出します。
setはそのインスタンスに値を設定します。
あなたの例だと、GetはCheckBoxの値を取り出します。
SetはCheckBoxに指定した値を設定します。

Q漢字読み取得方法

こんにちは
vb.net環境で開発しておりまして、
漢字の読みを取得する方法はないかと調べています。
(キーボードから入力というより、コピーへで入力されたものを変換という感じです)

例、日本好き→にほんすき

Aベストアンサー

ANo.2さんの言うとおり、いつも期待通りの結果を得るのは至難でしょう。

参考までに、そのような要望を実現するKAKASIというライブラリがあります。DLLがあるのでvb.netから呼び出せると思いますが、おそらく下のような結果になってしまいます(Linux版で確かめました)。

日本好き→にっぽんすき

参考URL:http://kakasi.namazu.org/index.html.ja

QVB.NETのDataGridで、選択行の特定の列の内容を取得したい

タイトルにあるとおり、DataGridを使用している場合、実行時に選択された行の特定の列の内容を取得するにはどのようにすればよいのでしょうか?

DataGridは複雑で、まだよくわかっていません。
よろしくお願いします。

Aベストアンサー

選択している行番号は、dataGrid1.CurrentRowIndexでわかります。
行、列を指定して各セルにアクセスするには、
dataGrid1(行番号,列番号)でいいので
dataGrid1(dataGrid1.CurrentRowIndex,列番号)
で選択されている行の特定の列の内容を取得できます。
註:番号は、0始まり


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング