文字の置換をエクセルVBAでやる方法

エクセルVBAデータの操作 データの操作

スポンサーリンク


スポンサーリンク

エクセルの【検索と置換】機能って面倒じゃない?

エクセルVBAを使って作成した住所録のデータを使ってイベント参加者をリストアップした時に感じたことですが、元々の住所録リストには「男」「女」としている部分を「男性」「女性」に置き換え用とした時の事です。

皆さんにお配りする参加者リストなので「男」より「男性」の方がいいですよね。

今さら住所録を修正するのも大変な作業なので参加者に配布するエクセルの文字を置き換えられないか?

[検索と置換]ダイアログボックス

エクセルの標準機能に置換があります。1回きりとか時々ならばわざわざエクセルVBAでやらなくてもいいでしょう。

ただ今回作りたいエクセルは、参加するたびに回数を集計したり男女別に分けて集計したデータを使おうと考えているので、イベント開催の度にこの置換作業をするのも面倒かな?

どうせならばエクセルVBAで参加者全員入力終わったらコマンドボタンを押したら、自動的に参加者リストは男女が男性・女性に考えたほど難しくはありませんでした。

Replaceで一発置換

エクセルVBA住所録4スポンサーリンク



上の表を参考にすると、セル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

  1. コマンドボタン(CommandButton1)を押したら
  2. Withステートメント開始
  3. 置換する範囲をD2からD200に指定
  4. “男”表記を見つけたら、”男性”に置き換える、検索は完全一致
  5. “女”表記を見つけたら、”女性”に置き換える、検索は完全一致
  6. Withステートメント終了
  7. 終了

これでD列に入力されていた性別「男・女」が「男性・女性に」置き換えられました。

とても簡単にできましたね。

Replace(置換)
引数 内容
What 検索する文字
Replacement 置換する文字
LookAt 完全一致【xlWhole】・部分一致【xlPart】
波乗りアヒル
波乗りアヒル

ご覧いただきありがとうございます。

ブログランキングに登録しています。

少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?