リストに基づいた記号置換(ExcelVBA)

概要

「置換リスト」シートに記載した「置換前文字」を「置換後文字」に置換する

プログラムを作成した理由

「ExcelVBAが多少書けます!」(if、forが分かる程度)と意気揚々と入社して数日後…
とあるCSV変換作業マニュアルを確認していたところ、

「検索と置換」(「Ctrl」+「H」キー)にて以下記号を置換する
という作業がありました。

※左(置換前)を右(置換後)記号に置換

Ⅰ → 1
Ⅱ → 2
Ⅲ → 3
Ⅳ → 4
Ⅴ → 5
Ⅵ → 6
Ⅶ → 7
Ⅷ → 8
Ⅸ → 9
Ⅹ → 10
① → [1]
② → [2]
③ → [3]
④ → [4]
⑤ → [5]
⑥ → [6]
⑦ → [7]
⑧ → [8]
⑨ → [9]
⑩ → [10]

これを毎日毎日手動で対応するのか…
と考えるだけで憂鬱になっていたのですが、

「そういえば置換ってExcelVBAで自動化出来るのかな…?」

とググったのがきっかけです。
今振り返ると、入社数日で自動化着手とか生意気な社員ですね←

実装内容

「置換リスト」シートに置換前文言、置換後文言、置換適応範囲を記載
※29行目以降にリストを追加すればVBAコードを修正せずに置換する事が可能

例)
29行目に
・A列「Σ」
・B列「◆」
・C列「A」
・D列「C」
と記載すれば、A列~C列内の「Σ」を「◆」に置換

が追加可能です

置換したいシートに移動し、「置換マクロ」を実行

「置換リスト」シートに 記載した内容通りに置換されている事を確認し、作業終了!

「①~⑩はA~B列置換」と記載した為、C列は置換されていない
「Ⅰ~ⅩはA列のみ置換」 と記載した為、A列のみ置換されている
「♪★☆◇□▽△はC22~C26セルのみ置換」と記載した為、C27~C28セルは置換されていない

ソースコード

感想

当時ExcelVBA初心者の私(if、for分が軽く分かるくらい)でしたが、
ExcelVBAに関する情報はググれば大量にあるので何とか実装出来ました。

こんな素人ツールでも職場からは
「え!早速自動ツール作成されたのですか!?流石マクロ使いですね!!!」
と前評判を落とさずに済みました(笑)

本ツールは「プログラムが何をやっているかが想像しやすい」という事もあり、
一気に定着致しました。

最初に取り組む自動化は
「作成者、使用者、管理者の三者が一見して内容が分かる自動化」がおススメかもしれませんね

編集履歴

2021/11/28 新規作成

関連記事一覧

PAGE TOP