ユーザーフォームを使ってデータ入力をする時に、入力済み最終行に自動的にデータを追記しますが、他の表からデータを取り込んでから追記する時に、必ずしも行が一致していないことがあります。
ボウリングのリーグ戦での成績表をエクセルで管理していると、リーグ戦が終了して次回新しくスタートする時に今までは、リーグ原紙のエクセルファイルを使って参加選手などを1から入力していましたが、基本的に前回の参加者と同じ場合がほとんどなので、データを引き継げないかと考えていました。
それがやっとできるようになったのですが、自動的に前回データを取り込んだところ、未登録選手のデータまで引き継ぐので、セルの値が「0」になってしまいました。
これをいっぺんに空欄にできれば、追加参加者をいつものユーザーフォームの新規登録フォームが活用できるようになりました。
ちょっと前置きが長くなりましたが、たった1行追加するだけで解決しますのでご紹介いたします。
目次
VBAで置き換えを行うReplace
VBAを使って文字や数字を置き換えるReplaceの基本的な使い方を表にしてみました。
引数 | 内容 |
What | 検索する文字 |
Replacement | 置換する文字 |
LookAt | 完全一致【xlWhole】・部分一致【xlPart】 |
実際に範囲のセルの値が0の時空欄に置きかえるコードはこのように書いていますが、抜粋していますので、subは省略します。
With Range(“D103:D142″)
.Replace What:=”0″, Replacement:=””, LookAt:=xlWhole
.Replace What:=”0″, Replacement:=””, LookAt:=xlWhole
- セルの範囲(D103:D142)を指定
- 0を探して空欄にする(検索する値は完全一致)

波乗りアヒル
Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!