玄関へお回り下さい。
半角カタカナだけを全角カタカナに変換する           (SNo.017)
使用コントロール Button1 
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
  
★ 半角カタカナだけを全角カタカナに変換する

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Label1.Text = fKanaHan2Zen(TextBox1.Text)
    Debug.WriteLine(fKanaHan2Zen("ABC123
アイウエオ123ガギパピプabc123"))
    '結果  ABC123アイウエオ123ガギパピプabc123
End Sub
'上記表記中の "ABC123アイウエオ123ガギパピプabc123" 赤字のカナ文字は、実際は[半角カナ]です


'=================================================
'半角カナだけを全角カナ変換する関数 fKanaHan2Zen
'=================================================
' result = fKanaHan2Zen(myString)
' 引数  myString :変換元の文字列
' 戻値  result   :変換後の文字列       
'-------------------------------------------------
Private Function fKanaHan2Zen(ByVal myString As StringAs String
   
Dim i As Integer, strTemp, chrKana As String, strKana As String = ""
   
If myString Like "*[。-゚]*" Then
       
For i = 0 To myString.Length - 1
            chrKana = myString.Chars(i)
           
Select Case Asc(chrKana)
               
Case 161 To 223
                    strKana &= chrKana 
'半角が続いたら文字をつなぐ
               
Case Else  '全角文字になったら半角の文字を全角に変換
                   
If strKana.Length > 0 Then
                        strTemp &= StrConv(strKana, VbStrConv.Wide)
                        strKana = ""
                   
End If
                    strTemp &= chrKana
           
End Select
       
Next i
       
If strKana.Length > 0 Then  '最後の文字が半角の場合の処理
            strTemp &= StrConv(strKana, VbStrConv.Wide)
       
End If
   
Else
       
Return myString
   
End If
   
Return strTemp
End Function

VB6.0 で使用していた http://hanatyan.sakura.ne.jp/VBHLP/HanToZen.htm を.NET用に移植したものです。
正規表現を使って半角カタカナだけを全角カタカナに変換する    (SNo.017)
使用コントロール Button1  Label1  TextBox1
その他条件 WindowsXP  Visual Basic .NET 2003 or Visual Basic 2005 Express Edition
  
Imports System.Text.RegularExpressions

Public Class Form1 

Private Sub Form1_Load(ByVal sender As System.Object, _
                       
ByVal e As System.EventArgs) Handles MyBase.Load
   TextBox1.Text = "ABC123 ABC123 アイウエオ カキクケコ ガギグゲゴ  パピプペポ"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button1.Click
   Label1.Text = Regex.Replace(TextBox1.Text, "[\uFF61-\uFF9F]+", _
                                 
New MatchEvaluator(AddressOf ReplaceCC))
End Sub

Private Function ReplaceCC(ByVal m As Match) As String
   
Dim s As String = m.ToString
   s = StrConv(s, VbStrConv.Wide)
   
Return s
End Function

End Class


2004/06/12
2007/03/27


VBレスキュー(花ちゃん)
VB.NET2003  VB2005