VBA100本ノック 60本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ
問題
#VBA100本ノック60本目
会社名の「株式会社」の表記ゆれを正すFunctionを作成してください。
引数で文字列を受け取り、文字列で返してください。
(株)
(株)
㈱
㍿
株)…
株)…
…(株
…(株
このような表記を「株式会社」に変換してください。
解答
Function 株を置換(str As String) As String
株を置換 = str
株を置換 = Replace(株を置換, "(株)", "株式会社", , , vbTextCompare)
株を置換 = Replace(株を置換, "㈱", "株式会社")
株を置換 = Replace(株を置換, ChrW(13183), "株式会社")
株を置換 = Replace(株を置換, "株)", "株式会社", , , vbTextCompare)
株を置換 = Replace(株を置換, "(株", "株式会社", , , vbTextCompare)
End Function
Sub test()
Dim r As Range
For Each r In Selection
r.Offset(, 1).Value = 株を置換(r.Value)
Next
End Sub
■考え方・流れ
0:00 冒頭・問題確認
1:43 ~株~を置換するファンクションを作成
4:36 VBEで扱えない文字を扱いたい場合

実務でよくありそうな
問題ですね!

ありそうでなさそうで
ありそうだな!!

それ言う必要ある…?
~株~を置換するファンクションを作成
さて!じゃあまずは…
とりあえず、上二つの株式会社を変更していくぞ!!
こういうのは一つずつ考えていくのが大事!!

とりまファンクション名は…
「株を置換」でww

そしたらお次!
置換したい時は…Replace関数さんを使えば良かったな!!
ちなみに第六引数で、全角と半角を区別しない指定もできちゃうぞ!!

じゃ、お次…
お次はこんな感じで、選択した一つ右のセルに変換後の値を入れるような
Subプロシージャを作ったぞ!!

実行結果!!

VBEで扱えない文字を扱いたい場合
よし!そしたら続いて!
㈱ てきな、VBEで扱えない文字をどうやって扱えばいいか見て行くぞ!!

実は環境依存系の文字は、VBEでは?????になっちゃって使えないことがあるんスわ!!
なんてこった…

この原因は、簡単に言うと…VBEはShift_JISだから!らしい。
古いんだってさ。

え?じゃあそんなんどうやって扱えばいいのん?
ってことなんだけど…
まずはな!!!UNICODEってやつの番号を調べてあげて…

ほんで、UNICODE関数さんでユニコードが取得できたら…
その数字を、VBE上でChrW関数さんに入れてあげればOK!!

よし!これで特殊文字も扱えた!!
いい感じ…って思うかもしれんが…
まてまてw

これ、変数にしてもよかったかもね!
ま、えっか!ww

実行結果↓

よし!ま、これさえできたら今回の問題はOKと言っていいだろう!
最後に()が左右についているものも追加してあげたら完成かな!!

実行結果↓

Good Job!!

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

お疲れさまでした!
あとがたり
おはこんばんちは。uぷ主です。
61本目、フリガナをマスタに合わせる問題でした!
ま、今日のはいうことなあんまないっすかね~!
Phonetic辺りをどう探すか、どうググるかの問題だったと思います。
あ、てか、最近知ったというかコメントもらったんですけど…
うぷぬしって、もしかして「uぷ主」じゃなくて「うp主」が正しいんですか???ww
いや、実はニコニコエアプなんで、テキトーにつかってたんですけど(ごめんなさい)
もし間違ってたらすんません。
あ、でも今更変更しないっす。めんどいんで。
コメント