Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19635 / 76732 ←次へ | 前へ→

【62526】Re:エクセルVBAで全角英数字は半角に、半角カタカナは全角カタカナに
発言  kanabun  - 09/7/28(火) 21:03 -

引用なし
パスワード
   ▼あやか さん:
おじゃまします

>エクセルのCell内に文字が入力された際
>以下の様な変換を行いたいと思いますが、
>
>「abcカタカナ」 ⇒ 「ABCカタカナ」
>
>英数字は半角英数字に、半角カタカナが入力された際は
>全角カタカナに。

チェックするシートのシートモジュール(のChangeイベント)に
こんな風に書いておいて、
セルに入力があったとき、
(1)全角英数部分は半角の大文字に、
(2)半角カタカナは 全角カタカナに
変換させることもできそうです。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
 Dim ss As String, m
 With CreateObject("VBScript.RegExp")
  .Pattern = "[\uFF65-\uFF9F]+"
  .Global = True
  
  For Each c In Target
    If Len(c.Value) Then
     ss = Format$(Application.Asc(c), ">") '英数部→半角大文字に
     If .Test(ss) Then     '半角カタカナ部分→全角カタカナに
       For Each m In .Execute(ss)
         ss = VBA.Replace(ss, m, StrConv(m, vbWide))
       Next
     End If
     Application.EnableEvents = False
     c.Value = ss
     Application.EnableEvents = True
    End If
  Next
 End With
End Sub
166 hits

【62507】エクセルVBAで全角英数字は半角に、半角カタカナは全角カタカナに あやか 09/7/27(月) 15:22 質問
【62513】Re:エクセルVBAで全角英数字は半角に、... つるりん 09/7/27(月) 20:35 回答
【62516】Re:エクセルVBAで全角英数字は半角に、... arajin 09/7/28(火) 10:24 回答
【62526】Re:エクセルVBAで全角英数字は半角に、... kanabun 09/7/28(火) 21:03 発言

19635 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free