6.文字列を指定の幅にカット(漢字分断回避) |
1.文字列を指定の幅にカット(漢字分断回避) 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 使用 API:なし その他 : : |
1.文字列を指定の幅にカット(漢字分断回避) |
Option Explicit 'SampleNo=269 2003.03.20 Private Function fStrCut(ByRef CutTxt As String, _ ByVal CutLen As Long) As String '半角・全角の混在する文字列を半角換算文字長で取り出し Dim myLen As Long, SysCodeTxt As String SysCodeTxt = StrConv(CutTxt, vbFromUnicode) '文字列を変換 myLen = LenB(SysCodeTxt) '半角換算のバイト数を取得 If myLen <= CutLen Then '指定の長さより短い場合 fStrCut = CutTxt & Space$(CutLen - myLen) '足りない分はスペースで Else '該当の文字列の方が長い場合、指定のバイトでカットする fStrCut = StrConv(LeftB$(SysCodeTxt, CutLen), vbUnicode) If InStr(fStrCut, vbNullChar) > 0 Then '漢字1バイト目で分断された場合の処理 fStrCut = Left$(fStrCut, InStr(fStrCut, vbNullChar) - 1) & " " ElseIf InStr(fStrCut, Chr(-32443)) > 0 Then '漢字1バイト目で分断された場合の処理 fStrCut = Left$(fStrCut, InStr(fStrCut, Chr(-32443)) - 1) & " " End If End If End Function Private Sub Command1_Click() Dim i As Long, L As Long, myText As String Text1.Text = "" 'text2=ABCあいう123亜井卯カキク For i = 1 To 16 L = LenB(StrConv(fStrCut(Text2.Text, i), vbFromUnicode)) myText = myText & L & vbTab & "[" & _ fStrCut(Text2.Text, i) & "]" & vbCrLf Next i Text1.Text = myText End Sub 図1.上記実行結果 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |