ExcelVBA

【エクセルVBA】文字列や数値を置換する

VBAの資格取得を応援する「パソコン教室ISA」ライターチームです。

エクセルであとから文字列や数値を置換する作業はよくあります。それが自分の作った資料だったらいいのですが、他の人のファイルやシートを集計していると、毎回置換をしないといけない・・・。そんな悩みを持つ方に向けた記事です。

パソコン教室ISAの資料をダウンロード(無料)

Replace関数で置換する

セル内の数値や文字列を置換するにはReplace関数を使います。

Replace 関数の基本構文

Replace(置換したい対象セル, 置換前の文字列・数値,
            置換後の文字列・数値)

例えば、セルA1にある”物流”という文字列を”ロジスティクス”に変更したいという場合、構文にあてはめると次のようになります。

Repalace(Range(“A1”), “物流”, “ロジスティクス”)

しかし、これだけでは構文エラーとなってしまい、プロシージャが実行できません。初心者の方がよくつまずくポイントです。以下の記述に変更をしましょう。

Range(“A1”) = Replace (Range(“A1″),”物流”,”ロジスティックス”)

エクセルと同様、関数は()内の引数に何らかの処理をした結果を「返す」ものです。その結果を返すオブジェクトを左辺で指定する必要がありますVBAの構文は原則としてオブジェクトで始まるという点に注意が必要です。

パソコン教室ISAのVBA講座を体験してみる(無料)

\ VBA試験の詳しい情報を受け取る /

VBAに関する資料をダウンロード

繰り返し処理と組み合わせて対象セル範囲を置換する

単一のセルだけではなく、セル範囲に置換を行う方法を確認しましょう。上の例のようにオブジェクトとして指定するセルと置換したい対象セルは同じです。そこでfor nextステートメントで変数を動かして繰り返し処理を行います。

以下の表でF列にある”営業”という文字列を”企画”に置換します。

Dim i
For i = 2 To 20

Cells(i , 6)=Replace(Cells(i , 6), “営業” , “企画”)

Next i

次の流れで処理をしています。

  1. カウンタ変数 i を宣言
  2. 変数 i に2から20を代入して、20行目まで繰り返し処理
  3. F列の2から20行目にReplace関数が返す結果を代入

パソコン教室ISAのVBA講座を体験してみる(無料)

繰り返し処理の最終行の変化に対応する

ここまでの操作であれば、実際はエクセルの置換機能を使って手動で行えばいい話です。データがどこまで入っているか分からない、都度変わるという場合にVBAが真価を発揮します。先ほどのコードを以下に変更します。

Dim i
For i = 2 To Cells(Rows.Count, 6).End(xlUp).Row

Cells(i , 6)=Replace(Cells(i , 6), “営業” , “企画”)

Next i

マーカー部分の変更によりF列に連続して入っているデータの最終行を取得することができます。

パソコン教室ISAの資料を取り寄せる(無料)

まとめ

置換はエクセルでよく使う操作なので、VBAで自動化の効果も高いところです。この記事ではReplace関数の基本的な使い方を紹介しましたが、実務に生かすには繰り返し処理との組み合わせが必須です。VBAの基本は体系的に学習しないとどこかで行き詰ることも多いです。体系的に学習をしたい場合は、パソコン教室や通信講座で学ぶのがおすすめです。

中でも、40年近い教室運営の実績を有するISAパソコン教室は、豊富な種類のVBA取得コースを提供しています。講師をすべて社員として教育の質を担保するなどの取り組みにより、日本マイクロソフトが1年に1社を選ぶLeaning Awardを10年間で3度受賞しています。効率的かつ質の高い学びの場を求める方は、下記の資料をご確認ください。

ABOUT ME
石井麻美
パソコン教室ISA講師の講師です。 主にOffice系(Word Excel Access PowerPoint)やVBAの授業を担当しています。 Microsoft Office Specialist VBAスタンダードクラウン 資格取得済
\ VBAの情報を手に入れよう/
関連するお役立ち資料
MOS試験に関する資料
MOS試験の概要や取得するメリット、受験科目の選び方や勉強方法を解説 ダウンロード
VBAに関する資料
VBAとはどういうものか?VBAの基本情報からできること、できないことを解説 ダウンロード
お気軽にご相談ください

パソコンに関する技術や、資格取得のご相談など、お気軽にお問い合わせください