2009年11月24日
文章を半角カタカナに変換する関数
某質問サイトへ答えた内容だが
文章をすべて半角カタカナに変換するというユーザー定義関数で
こちらで手を加えずに「GetPhonetic」で変換すると
100文字以内という制限が働くので
そこらへんに手を加えて100文字以上に対応させたものを残しておくことにする
[ユーザー定義関数の作成]
1.ツールバーから[ツール]→[マクロ]→[Visual Basic Editor]を実行
2.Projectエクスプローラの部分を右クリックして標準モジュールを挿入
3.挿入した標準モジュールを開き以下のコードを記述
Function KanaConv(strText As String) As String
Dim strLen As Integer
Dim strTexts(100) As String 'よくわからないので1万文字まで
Dim i As Integer
Dim strTmp As String
strLen = (Len(strText) / 100)
For i = 0 To strLen
strTexts(i) = Application.GetPhonetic(Mid(strText, (i * 100) + 1, 100))
strTmp = strTmp & StrConv(strTexts(i), vbNarrow)
Next i
KanaConv = strTmp
End Function
あとはセル部分へ普通にExcel関数と同様の使用ができるようになる
たとえばA1にある文字をA2へ半角カタカナで表示するようにするなら
A2のセルへ次のように使用する
=KanaConv(A1)
テスト環境はExcel2007だがExcel2002以降ならおそらく動くと思われる
Excel2000は保障なし・・・
文章をすべて半角カタカナに変換するというユーザー定義関数で
こちらで手を加えずに「GetPhonetic」で変換すると
100文字以内という制限が働くので
そこらへんに手を加えて100文字以上に対応させたものを残しておくことにする
[ユーザー定義関数の作成]
1.ツールバーから[ツール]→[マクロ]→[Visual Basic Editor]を実行
2.Projectエクスプローラの部分を右クリックして標準モジュールを挿入
3.挿入した標準モジュールを開き以下のコードを記述
Function KanaConv(strText As String) As String
Dim strLen As Integer
Dim strTexts(100) As String 'よくわからないので1万文字まで
Dim i As Integer
Dim strTmp As String
strLen = (Len(strText) / 100)
For i = 0 To strLen
strTexts(i) = Application.GetPhonetic(Mid(strText, (i * 100) + 1, 100))
strTmp = strTmp & StrConv(strTexts(i), vbNarrow)
Next i
KanaConv = strTmp
End Function
あとはセル部分へ普通にExcel関数と同様の使用ができるようになる
たとえばA1にある文字をA2へ半角カタカナで表示するようにするなら
A2のセルへ次のように使用する
=KanaConv(A1)
テスト環境はExcel2007だがExcel2002以降ならおそらく動くと思われる
Excel2000は保障なし・・・
Posted by タカさん at 06:27│Comments(0)
│ユーザー定義関数
※会員のみコメントを受け付けております、ログインが必要です。