[[20240801195148]] 『カタカナからひらがなへ変換するマクロ』(ネットカフェ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『カタカナからひらがなへ変換するマクロ』(ネットカフェ)

下のVBAなんですが

Sub カタカナからひらがなへ()

    Dim c As Range
    For Each c In Selection
        c = StrConv(c, 32)
    Next c
End Sub

このコードでセル内に「・」中黒(ビュレット)の文字が一つでも含まれていたら除外できるようにお願いします。

例題)
アイウエオ→あいうえお
アイウ・エオ→アイウ・エオ
カ・キ・ク・ケ・コ→カ・キ・ク・ケ・コ
トクガワ イエヤス→とくがわ いえやす
サシスセソ333→さしすせそ333
ヴィンセント→ヴぃんせんと
「ヴ」はしょうがないので、そのままでOKです

< 使用 Excel:Excel2007、使用 OS:Windows10 >


たくさん「質問」をされてますが、ちゃんと理解できてますか?
質問ではなく、作業依頼をしたいだけであれば、その旨明示された方が、お互いの気持ちがすれ違わなくてよいとおもいます。

ちなみに、質問である場合は↓で条件分岐できるとおもいますのでトライしてみては如何でしょうか。

 ・Like演算子で「*・*」と比較する
 ・ワークシートのCOUNTIF関数で「*・*」との数が0であるか調べる
 ・Instr関数で「・」が0文字目で見つかるか調べる

(もこな2 ) 2024/08/01(木) 20:37:07


 本題からはちょっと逸れるんですけど、
 StrConvってShift-JISに無い文字を破壊してしまう性質があるので、その点に留意する必要があります。
 (私は、なるべくStrConv以外の変換方法を選ぶ様に心掛けてます)

    Function test(c) 'カタカナに変換
        test = StrConv(c, &H10)
    End Function

    Sub test2()
        [A1:B1] = [{"(U+0041)LATIN CAPITAL LETTER A",65}]
        [A2:B2] = [{"(U+3042)HIRAGANA LETTER A",12354}]
        [A3:B3] = [{"(U+3351)SQUARE RITTORU",13137}]
        [A4:B4] = [{"(U+2113)SCRIPT SMALL L",8467}]
        [A5:B5] = [{"(U+1F446)WHITE UP POINTING BACKHAND INDEX",128070}]
        Columns("A").AutoFit
        [C1:C5].FormulaR1C1 = "=szChrW(RC2)"
        [D1:D5].FormulaR1C1 = "=test(RC3)"
    End Sub
    Private Function szChrW(CodePoint As Variant) As String
        Dim b() As Byte
        If CodePoint >= &H10000 Then
            Dim h As Long, l As Long
            ReDim b(0 To 3) As Byte
            h = (CodePoint - &H10000) \ &H400& + &HD800&
            l = (CodePoint - &H10000) Mod &H400& + &HDC00&
            b(1) = h \ &H100&: b(0) = h Mod &H100&
            b(3) = l \ &H100&: b(2) = l Mod &H100&
        Else
            ReDim b(0 To 1) As Byte
            b(1) = CodePoint \ &H100&: b(0) = CodePoint Mod &H100&
        End If
        szChrW = b
    End Function

(白茶) 2024/08/01(木) 22:00:59


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.