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

エクセル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】

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

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

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