Excel VBA質問箱 IV

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

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


19316 / 76732 ←次へ | 前へ→

【62849】Re:文字の全角半角について
発言  kanabun  - 09/9/8(火) 22:30 -

引用なし
パスワード
   ▼拝島 さん:
おじゃまします。

>自分が扱ったことのない関数だったり、正規表現だったりと

(1)ASC関数は Applicationオブジェクトのメソッドとして使うと、
  セル範囲をループしなくて一括で、半角化できます。
(2)半角カタカナの全角化は(どうも 一括でできる方法はなさそう)
  なので、正規表現を使ってセル単位でループして全角化します。

Sub Try1()
  Dim r As Range
  Dim vv, ss As String, s
  Dim regEx As Object
  Dim i As Long, j As Long
  
  Set r = Selection  '← ◆指定のセル範囲に変更してください

  '(1)全角の英数字を半角にし
  vv = Application.Asc(r)
  
  '(2)半角のカタカナを全角に
  Set regEx = CreateObject("VBScript.RegExp")
   '半角カタカナのUnicode範囲 : FF65-FF9F
  regEx.Pattern = "[\uFF65-\uFF9F]+"
  regEx.Global = True
  For i = 1 To UBound(vv)
   For j = 1 To UBound(vv, 2)
    ss = vv(i, j)
    If regEx.test(ss) Then
      For Each s In regEx.Execute(ss)
        ss = Replace(ss, s, StrConv(s, vbWide))
      Next
      vv(i, j) = ss
    End If
   Next
  Next
  r.Value = vv
  Set regEx = Nothing
End Sub

0 hits

【62841】文字の全角半角について 拝島 09/9/8(火) 15:37 質問
【62843】Re:文字の全角半角について 超初心者 09/9/8(火) 16:27 発言
【62844】Re:文字の全角半角について 拝島 09/9/8(火) 17:40 質問
【62845】Re:文字の全角半角について りおりお 09/9/8(火) 18:08 発言
【62846】Re:文字の全角半角について 拝島 09/9/8(火) 18:31 お礼
【62849】Re:文字の全角半角について kanabun 09/9/8(火) 22:30 発言
【62847】Re:文字の全角半角について 超初心者 09/9/8(火) 18:31 発言
【62852】Re:文字の全角半角について 拝島 09/9/9(水) 9:45 お礼

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