advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 48 for SetPhonetic (0.000 sec.)
[[20100418093301]]
#score: 13344
@digest: 173fc2f3854678c9eb867364df62c36b
@id: 48957
@mdate: 2010-04-18T09:08:39Z
@size: 4717
@type: text/plain
#keywords: レカ (24539), カヤ (19929), シ-- (18382), ヤシ (15440), vbstrconv (15241), ガナ (15225), xlkatakanahalf (14319), phonetics (13845), crng (12897), 字氏 (12838), リガ (12682), vbkatakana (11667), 双眼 (11604), charactertype (11484), trng (10976), フリ (8663), 眼鏡 (7129), setphonetic (5576), ナが (4446), samp1 (4320), アレ (3931), 前付 (3401), 漢字 (2736), vbnarrow (2452), strconv (2368), ナを (2362), ichinose (2066), interior (1934), 角カ (1863), colorindex (1591), カタ (1312), タカ (1151)
『フリガナがない人にフリガナを』(アレカヤシ)
windowsXP Excel2003使用しています。 A列に漢字氏名がありB列にそのフリガナがある人とない人があります。 フリガナのない人のみフリガナを表示しセルに色をつけるマクロを教えてください。 フリガナは半角カタカナで表示したいです。 よろしくお願いします。 ---- Sub samp1() Dim crng As Range Dim trng As Range Set crng = Nothing With Range("a2", Cells(Rows.Count, "a").End(xlUp)) If .Row > 1 Then For Each trng In .Cells With trng If .Phonetics.Count = 0 Then .Interior.ColorIndex = 3 If crng Is Nothing Then Set crng = .Cells Else Set crng = Union(crng, .Cells) End If Else .Interior.ColorIndex = xlNone End If End With Next End If End With If Not crng Is Nothing Then With crng .SetPhonetic .Phonetics.CharacterType = xlKatakanaHalf End With End If End Sub 但し、A列1行目は、項目名だとします。 又、フリガナは、正しいフリガナでないときもありますよ、 ichinose ---- ichinose様 ありがとうございます。 マクロを実行してもフリガナガが表示されないのですが。 また、フリガナがある人のセルにも色がついてしまいます。 申し訳ありませんがご指導お願いいたします。 アレカヤシ ---- ichinose様 説明不足で申し訳ありません。 フリガナはA列の漢字氏名のとなり(B列)に表示したいです。 また、セルの色は、フリガナがなっかた漢字氏名と新しく振られたフリガナ両方に 色をつけたいです。 よろしくお願いいたします。 アレカヤシ ---- こんにちわ。。 ちょっと、不細工かな? Sub TEST() Dim myRng As Range Dim c As Range Set myRng = Range(Range("A1"), Cells(Rows.Count, "A").End(xlUp)) For Each c In myRng If c.Offset(, 1).Value = "" Then c.Offset(, 1).Value = StrConv(Application.GetPhonetic(c.Value), 16 + 8) c.Resize(, 2).Interior.ColorIndex = 3 End If Next End Sub (kei) ---- あら、仕様を間違えていましたか? Sub samp1() Dim crng As Range Dim rng As Range Dim trng As Range Set crng = Nothing With Range("a2", Cells(Rows.Count, "a").End(xlUp)) If .Row > 1 Then For Each trng In .Cells With trng If .Phonetics.Count = 0 Or .Offset(0, 1).Value = "" Then If crng Is Nothing Then Set crng = .Cells Else Set crng = Union(crng, .Cells) End If Else .Resize(, 2).Interior.ColorIndex = xlNone End If End With Next End If End With If Not crng Is Nothing Then With crng .SetPhonetic .Phonetics.CharacterType = xlKatakanaHalf For Each rng In .Areas rng.Resize(, 2).Interior.ColorIndex = 3 With rng.Offset(0, 1) .Formula = "=phonetic(rc[-1])" .Value = .Value End With Next End With End If End Sub A列の漢字は、全部フリガナが設定されているという設定ならば、 もう少し簡単になるかもしれませんが、A列の漢字にフリガナが設定されていなければ、 フリガナを設定し、B列にそのフリガナを表示するという仕様にしました。 ichinose ---- ichinose様 kei様 ありがとうございます。 イメージどおりです。たすかりました。 kei様 参考までにコード中の16 + 8は半角カタカナを意味するのでしょうか。 また、どのように決まるのでしょうか。 お時間ありましたらご返答ください。 アレカヤシ ---- Visual Basic Editor で表示>オブジェクトブラウザを選択、 StrConvを検索(双眼鏡のアイコンの左にStrConvを入力して双眼鏡アイコンクリック) すると、「クラス」にvbStrConvという項目が現れるのでそれをクリック。 vbStrConvのメンバというのが表示されます。 それぞれクリックしてみると、 Const vbNarrow = 8 とか表示されます。「名前付き組込定数」というやつです。 16はvbKatakanaであるのも解ると思います。 16 + 8 は StrConv 関数の引数に、[vbKatakana と vbNarrow]を指定したのと 同じなのですが、数値にしてしまうと後でわかりにくいので、私は極力、 名前付き引数を使うようにしています。 (みやほりん)(-_∂)b ---- (みやほりん)(-_∂)b様 ご丁寧な説明感謝いたします。 [16 + 8] を [vbKatakana + vbNarrow] と置き換えて実行してみました。 少しずつマクロを勉強していきたいと思います。 ありがとうございました。 アレカヤシ ---- (みやほりん)(-_∂)bさん、丁寧な解説ありがとうございました。m(__)m (kei) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201004/20100418093301.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97048 documents and 608235 words.

訪問者:カウンタValid HTML 4.01 Transitional