60本目 「株式会社」の表記ゆれ置換

VBA100本ノック

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

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

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

コメント

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