どうも、三流プログラマーの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のサンプルコード]/
広告-[通販人気商品の足跡]