61本目 「ふりがな」の取得と設定

VBA100本ノック

VBA100本ノック 61本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ


問題

#VBA100本ノック61本目
A列の名称には「ふりがな」が正しく入っていません。
「マスタ」シートのA列には「ふりがな」が正しく設定されているので、ここから「ふりがな」を取得しA列に「ふりがな」を設定してください。
マスタなしは赤文字にしてください。(既定の文字色は自動)
※シートは任意

解答

Sub ふりがなをマスタから持ってくる()

    Dim wsデータ As Worksheet: Set wsデータ = Sheets("data")
    Dim wsマスタ As Worksheet: Set wsマスタ = Sheets("マスタ")
    
    Dim i As Long, X As String
    For i = 2 To wsデータ.Cells(Rows.Count, 1).End(xlUp).Row
        X = WorksheetFunction.XLookup(wsデータ.Cells(i, 1), wsマスタ.Range("A:A"), wsマスタ.Range("B:B"), "なし")
        If X = "なし" Then
            wsデータ.Cells(i, 1).Font.Color = vbRed
        Else
            Cells(i, 1).Phonetic.Text = X
        End If
    Next i

End Sub

■考え方・流れ
0:00 冒頭・問題確認
2:06 VBAでフリガナってどう扱うの?
4:27 マスタのB列にフリガナを表示する
5:28 フリガナをマスタに合わせる

新人君
新人君

頑張りましょうね!

ブチョ
ブチョ

いや!ここはあえて
頑張らない!

新人君
新人君

VBAでフリガナってどう扱うの?

さて!じゃあまずは…
VBAでフリガナをどうやって扱うか調べていこう!!

マクロの記録にお世話になるぞ!!

そうすると…
Phoneticsプロパティさんが怪しい!ってことが分かるぞん!!

そしたらお次は…
ローカルウィンドウさんで、PhoneticsやPhoneticをざっと確認して…
どのプロパティを見ればいいか検討をつけていきゃー何とかなる!!

マスタのB列にフリガナを表示する

よし!そしたら続いて!
マスタシートのB列に、フリガナを入力しておこう!!

VBAで扱いやすいマスタを予め作っておくのも立派なVBA力だぞ!!(適当)

ま…これは皆さんご存じ!!
PHONETIC関数さんを使えば一発っすわ!!

フリガナをマスタに合わせる

よし!最後に!!
実際にフリガナをマスタに合わせて終わりにしちゃうぞ!!

別シートを扱う場合は!シートを変数にしてあげて…

ほんで…今回やりたいことは、条件分岐が必要だったよな…
つまり…

Xlookup関数さんを使って、結果がもしあれば、取得したフリガナを設定。
無ければ文字を赤くすればいいね!

分岐の式はこんな感じ!!

実行結果↓

Good Job!!

ブチョ
ブチョ

お疲れさママンボウ!!!

新人君
新人君

お疲れさまでした!

あとがたり

おはこんばんちは。uぷ主です。
61本目、フリガナをマスタに合わせる問題でした!

ま、今日のはいうことなあんまないっすかね~!
Phonetic辺りをどう探すか、どうググるかの問題だったと思います。

あ、てか、最近知ったというかコメントもらったんですけど…
うぷぬしって、もしかして「uぷ主」じゃなくて「うp主」が正しいんですか???ww

いや、実はニコニコエアプなんで、テキトーにつかってたんですけど(ごめんなさい)

もし間違ってたらすんません。
あ、でも今更変更しないっす。めんどいんで。

コメント

タイトルとURLをコピーしました