文字の置換をエクセルVBAでやる方法
スポンサーリンク
エクセルの【検索と置換】機能って面倒じゃない?
エクセルVBAを使って作成した住所録のデータを使ってイベント参加者をリストアップした時に感じたことですが、元々の住所録リストには「男」「女」としている部分を「男性」「女性」に置き換え用とした時の事です。
皆さんにお配りする参加者リストなので「男」より「男性」の方がいいですよね。
今さら住所録を修正するのも大変な作業なので参加者に配布するエクセルの文字を置き換えられないか?
[検索と置換]ダイアログボックス
エクセルの標準機能に置換があります。1回きりとか時々ならばわざわざエクセルVBAでやらなくてもいいでしょう。
ただ今回作りたいエクセルは、参加するたびに回数を集計したり男女別に分けて集計したデータを使おうと考えているので、イベント開催の度にこの置換作業をするのも面倒かな?
どうせならばエクセルVBAで参加者全員入力終わったらコマンドボタンを押したら、自動的に参加者リストは男女が男性・女性に考えたほど難しくはありませんでした。
Replaceで一発置換
スポンサーリンク
上の表を参考にすると、セルD2~D5に性別が入力されているので「男」を「男性」と「1」へ「女」を「女性」と「2」へそれぞれ置換します。
検索方法は2種類あって「完全一致」は【xlWhole】、「部分一致」は【xlPart】です。
ここでは住所録リストからデータを用いるので、完全一致のxlWholeを使います。
Private Sub CommandButton1_Click()
With Range(“D2:D200″)
.Replace What:=”男”, Replacement:=”男性”, LookAt:=xlWhole
.Replace What:=”女”, Replacement:=”女性”, LookAt:=xlWhole
End With
End Sub
- コマンドボタン(CommandButton1)を押したら
- Withステートメント開始
- 置換する範囲をD2からD200に指定
- “男”表記を見つけたら、”男性”に置き換える、検索は完全一致
- “女”表記を見つけたら、”女性”に置き換える、検索は完全一致
- Withステートメント終了
- 終了
これでD列に入力されていた性別「男・女」が「男性・女性に」置き換えられました。
とても簡単にできましたね。
引数 | 内容 |
What | 検索する文字 |
Replacement | 置換する文字 |
LookAt | 完全一致【xlWhole】・部分一致【xlPart】 |
ご覧いただきありがとうございます。
ブログランキングに登録しています。
少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。
エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?