[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[862] セル内の英数字の数字だけ残して削除する

しろくま [2024/10/16 17:09:26]

お世話になります。
過去の掲示板にあるかと思い、探して見たのですがそれらしいマクロが見つかりませんでした。ご教授頂けると幸いです。

8列目の2行目から全て対象とする
セル内の英数字の数字だけ残して削除したいです。その時、文字は空白にせず、詰めたいです。
下記のような感じです。
6170002P → 6170002
0229C275 →  0229275
A2027001 →  2027001

以上、宜しくお願いいたします。

Re: [862] セル内の英数字の数字だけ残して削除する

あすかぜ [2024/10/16 22:49:21]

正規表現を使うことで数字だけを残すことができそうです。
次の手順を試してみてください。

1. [検索(S)]-[検索・置換(F)...] メニューで検索・置換ダイアログを開く
2. 「検索する文字列(S)」に「[^\d]」と入力
3. 「置換後の文字列」は空欄のままとしておく
4. 「正規表現検索(E)」にチェックを入れる
5.検索対象を「現在の列」にする
5. 「すべて置換(A)」を実行

マクロを使用する場合、マクロファイルに

ReplaceAll("[^\\d]", "", false, false, true, 8, 2, 8, Bottom);

と記述してください。
よろしくお願いします。

Re: [862] セル内の英数字の数字だけ残して削除する

しろくま [2024/10/17 11:21:07]

早速有難う御座いました。
毎回する作業なので、マクロで実施して結果的には問題なく、置換出来ました。

一応意味を知りたいのですが、正規表現の[^\\d]で「\d」は半角数字だと思うのですが。次の「""」で空白行削除だと思うのですが、これだと数字が削除されてしまいます。
以上、宜しくお願いいたします。

Re: [862] セル内の英数字の数字だけ残して削除する

あすかぜ [2024/10/17 22:25:24]

はい、「\d」は半角数字を表します。
[^…] は「括弧内に含まれない 1 文字」を表すので、[^\d] で「数字以外の文字」を表現できます。
数字以外の文字をすべて ""(空文字列)に置換することで、数字以外の文字がすべて削除されて数字だけを残すことができます。

これで説明になっているでしょうか?

Re: [862] セル内の英数字の数字だけ残して削除する

しろくま [2024/10/18 08:23:31]

あすかぜ様
ご丁寧な説明、有難う御座いました。理解出来ました。

正規表現があまり理解出来ておらず、[^~]を調べたら、~に含まれない1文字の意味でした。
^と[^]が違うことに気づきませんでした。改めて勉強になりました。

スレッド一覧に戻る返信