半角カタカナだけを全角カタカナに変換する (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 String) As 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 |