どうも、三流プログラマーのKen3です。 今回は、 プログラムの修正・追加のいろいろな方法? について、少し書いてみます。 自分でも読み返すとあまり参考にならないのですが、 せっかく書いたので発行しちゃいます。 (読者の声:そんなことしてるから、最近のメルマガの質が落ちてるんだってば)/* * 1. 今回のキッカケ */
前回のメルマガで、 全角英数字を半角にする下記のサブルーチンを作成した。
Function 全角ABCto半角ABC(strMOTO As String) As String Dim strRET As String Dim strCHK As String Dim n As Integer Dim lngCODE As Long strRET = "" 'リターン値の初期化 '文字数分コードを調べて変換して、strRETに+する For n = 1 To Len(strMOTO) strCHK = Mid(strMOTO, n, 1) 'n番目の文字を取り出す Select Case Asc(strCHK) Case Asc("0") To Asc("9") '全角0〜9 strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("a") To Asc("z") '全角a〜z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("A") To Asc("Z") '全角A〜Z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Else 'その他 strRET = strRET & strCHK '上記以外はそのまま+する End Select Next n '変換結果を返す 全角ABCto半角ABC = strRET 'リターン値の代入(変換結果の代入) End Function |
Sub test() 'テスト確認用 Dim strWORK As String strWORK = "Windows 2003 デバイスドライバ入門 " MsgBox 全角ABCto半角ABC(strWORK) End Sub |
Function 全角ABCto半角ABC(strMOTO As String) As String Dim strRET As String Dim strCHK As String Dim n As Integer Dim lngCODE As Long strRET = "" 'リターン値の初期化 '文字数分コードを調べて変換して、strRETに+する For n = 1 To Len(strMOTO) strCHK = Mid(strMOTO, n, 1) 'n番目の文字を取り出す Select Case Asc(strCHK) Case Asc("0") To Asc("9") '全角0〜9 strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("a") To Asc("z") '全角a〜z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("A") To Asc("Z") '全角A〜Z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Else 'その他 strRET = strRET & strCHK '上記以外はそのまま+する End Select Next n '追加で()/.を変換する strRET = Replace(strRET, "(", "(") 'カッコ strRET = Replace(strRET, ")", ")") strRET = Replace(strRET, "/", "/") 'スラッシュ strRET = Replace(strRET, ".", ".") 'ドット '変換結果を返す 全角ABCto半角ABC = strRET 'リターン値の代入(変換結果の代入) End Function |
Sub test() Dim strWORK As String Debug.Print "テスト結果:" & Now strWORK = "Excel VBA(ブイビーエー) 2000/2002対応" Debug.Print 全角ABCto半角ABC(strWORK) strWORK = ".NETエンタープライズWebアプリケーション開発技術大全" Debug.Print 全角ABCto半角ABC(strWORK) End Sub |
Function 全角ABCto半角ABC(strMOTO As String) As String Dim strRET As String Dim strCHK As String Dim n As Integer Dim lngCODE As Long strRET = "" 'リターン値の初期化 '文字数分コードを調べて変換して、strRETに+する For n = 1 To Len(strMOTO) strCHK = Mid(strMOTO, n, 1) 'n番目の文字を取り出す Select Case Asc(strCHK) Case Asc("0") To Asc("9") '全角0〜9 strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("a") To Asc("z") '全角a〜z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("A") To Asc("Z") '全角A〜Z strRET = strRET & StrConv(strCHK, vbNarrow) '変換して+ Case Asc("(") '( カッコ strRET = strRET & "(" '半角の(を+する Case Asc(")") ') カッコ strRET = strRET & ")" '半角の)を+する Case Asc("/") '/ スラッシュ strRET = strRET & "/" '半角の/を+する Case Asc(".") '.ドット strRET = strRET & "." '半角の.を+する Case Else 'その他 strRET = strRET & strCHK '上記以外はそのまま+する End Select Next n '変換結果を返す 全角ABCto半角ABC = strRET 'リターン値の代入(変換結果の代入) End Function |
Sub test() Dim strWORK As String Debug.Print "テスト結果:" & Now strWORK = "Excel VBA(ブイビーエー) 2000/2002対応" Debug.Print 全角ABCto半角ABC(strWORK) strWORK = ".NETエンタープライズWebアプリケーション開発技術大全" Debug.Print 全角ABCto半角ABC(strWORK) End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]