『カタカナからひらがなへ変換するマクロ』(ネットカフェ)
下の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.