VBA練習問題
VBA100本ノック 60本目:「株式会社」の表記ゆれ置換

VBAを100本の練習問題で鍛えます
公開日:2021-01-05 最終更新日:2021-01-13

VBA100本ノック 60本目:「株式会社」の表記ゆれ置換


「株式会社」の表記ゆれを正すFunctionを作成する問題です。


ツイッター連動企画です。
ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。

VBAテスト用のサンプルデータはご自身でご用意ください。


出題

出題ツイートへのリンク

#VBA100本ノック 60本目
会社名の「株式会社」の表記ゆれを正すFunctionを作成してください。
引数で文字列を受け取り、文字列で返してください。
(株)
(株)


株)…
株)…
…(株
…(株
このような表記を「株式会社」に変換してください。


VBA作成タイム

この下に頂いた回答へのリンクと解説を掲載しています。
途中まででも良いので、できるだけ自分でVBAを書いてみましょう。


他の人の回答および解説を見て、書いたVBAを見直してみましょう。


頂いた回答

解説

文字列の置換といえばまず最初にReplace関数ですね。
Replace関数の6番目の引数でcompareを指定できます。
vbTextCompareなら大文字小文字・全角半角を区別しません。
UniCode文字はChrW関数で文字コードを指定します。

Function VBA100_60_01(ByVal aName As String) As String
  Dim kk, v
  kk = Array("(株)", "株)", "(株", "㈱", ChrW(&H337F), ChrW(&H3291), ChrW(&H33CD))
  For Each v In kk
    aName = Replace(aName, v, "株式会社", , , vbTextCompare)
  Next
  VBA100_60_01 = aName
End Function


文字列置換については「24本目:全角英数のみ半角」でも扱いました。
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
ここの最後でvbTextCompareを紹介しています。
また、使い慣れていれば正規表現も良いと思いますが、今回はサンプルVBAは書いていません。
特に補足はありません。


補足

補足はありません。


サイト内関連ページ

第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
・文字列操作に関するVBA関数の一覧 ・Replace関数 ・InStr関数 ・StrConv関数 ・最後に
Replace関数
Replace関数は、指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。引数compareの指定りより、全角半角、大文字小文字の扱いが変わります。Replace関数 Replace(expression,find,replace[,start[,count[,compare]]]) …
VBAで正規表現を利用する(RegExp)
・メタ文字 ・正規表現 ・正規表現RegExpの使い方 ・RegExpオブジェクト ・RegExpの使用例 ・RegExp関連のオブジェクト ・Execute(Matches,Match,SubMatches)の使用例 ・Replaceの使用例 ・先読み:肯定先読み、否定先読み ・正規表現の実践例




同じテーマ「VBA100本ノック」の記事

57本目:ファイルの更新日時

・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
58本目:番号リストを簡潔にした文字列で返す
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
59本目:12ヶ月分のシートを四半期で分割
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
60本目:「株式会社」の表記ゆれ置換
61本目:「ふりがな」の取得と設定
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
62本目:独自のZLOOKUP関数を作成
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
63本目:複数シートの連結
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
64本目:リンクされた図(カメラ機能)
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
65本目:固定長テキスト出力
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
66本目:全サブフォルダからファイルを探す
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
67本目:ComboBoxとListBox
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ


新着記事NEW ・・・新着記事一覧を見る

TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.条件分岐(Select Case)|VBA入門
9.メッセージボックス(MsgBox関数)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ