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
いや、実はニコニコエアプなんで、テキトーにつかってたんですけど(ごめんなさい)
もし間違ってたらすんません。
あ、でも今更変更しないっす。めんどいんで。
コメント