Replace構文を使って文字列に含まれる空白を削除するExcelのマクロ

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

会計ソフトで使用している勘定科目名称をExcel等にエクスポートすると、次の画像のように文字列の間に全角又は半角スペースを含んだ状態で表示されてしまうケースがあります。

Replace_test_11

上の画像のように文字列に含まれる全角、半角のスペースが含まれている場合、私は、vbaでReplace構文を使ってスペースを削除するプログラムを作成してスペースを削除しています。Excelのマクロ機能で自動化しておくと便利です。

今日は、Replace構文について簡単に記載してみます。

 

Replace構文の基本

Replace構文の基本的な設定は次のとおりです。

Replace(対象の文字列,置き換え対象の文字,新しく置き換える文字,スタート位置,個数,比較モード)」
□ 対象の文字列・・・セルや変数を指定します。

□ 置き換え対象の文字・・・対象の文字列に含まれる置き換えの対象となる文字を記述します。

□ 新しく置き換える文字・・・置き換え対象の文字と置き換える文字を記述します。

□ スタート位置、個数、比較モード・・・構文のなかの後半の引数(下線)は、省略することができます。(私も省略して使用しているので、詳しい説明は省きます)

 

使用例1(スペースを削除する)

次のようなExcelのシートを準備しました。

Replace_test_12

 

上の画像のExcelシートのA列の文字列のスペースを省いてC列に転記します。vbaでは次のような記述をしました。

 

(1) 変数の宣言等

Replace_test_13

変数は上の画像の緑色の枠囲みのとおり宣言しました。

変数lonYaには処理の最初の行となる「2」を代入し、変数lonYyにはデータが入力されている最終行を代入しました。(上の画像の赤色の枠囲みの3行目と4行目)

 

(2) Replace構文の記述

Replace_test_14

Do~Loop構文で繰り返し処理を記述します。(上の画面の緑色の枠囲み)

変数strGaには、A列のlonYa行目の文字列を代入します。(上の画面の赤色の枠囲みの1行目)

Replace構文により、変数strGaに含まれる全角スペース(” ”)を(“”)に置き換え、半角スペースを(” “)を(“”)に置き換え、それぞれ、置き換え後の文字列を変数strGaに代入します。(上の画面の赤色の枠囲みの2行目、3行目)

置き換え後の文字列strGaをC列のlonYa行目に転記します。(上の画面の赤色の枠囲みの4行目)

 

Replace構文を実行した結果

実行すると次の画像の赤い枠囲み部分のとおり空白が削除された文字列が表示されます。

Replace_test_15

 

使用例2(改行を削除する)

次のようなExcelのシートを準備しました。

Replace_test_21

上の画像のExcelシートの「A列の文字列の改行を省いてC列に転記する」というプログラムをvbaで記述してみます。

 

(1) 変数の宣言等

変数の宣言等は、「使用例1(スペースを削除する)」と同じなので省略します。

 

(2) Replace構文の記述

Replace_test_22

Replace構文により、変数strGaに含まれる「改行vbCLf」を(“”)に置き換え、「改行vbLf」を(“”)に置き換え、それぞれ、置き換え後の文字列を変数strGaに代入します。(上の画面の水色の枠囲み)

※ 改行の削除については、次のページを参考にさせていただきました。
参考 Office TANAKA Replace関数

 

Replace構文を実行した結果

Replace_test_23

 

まとめ

経理事務の場合は、文字列の操作はあまりないかと思いますが、スペースを削除する処理でReplace構文は重宝しています。

 

■□◆◇ 編集後記 ◇◆□■

年末調整の作業にまだ追われていません。資料を素早く提出してもらえるかどうかが、処理をスムーズに進めるためのカギですね。