質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

539閲覧

エクセルVBAで正規表現で置換したい

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2022/10/26 12:40

エクセルのセル全体を対象に、正規表現で置換がしたいです。

(1)先頭に ' をつける
(2)最後に ' をつける
(3)東京を 東京都 にしたい

※理解がしやすいので(1)(2)(3)同時でなく、それぞれの処理が知りたいです。

VBA初級者です。
sakuraエディタの正規表現を少し使った事がある程度です。
先頭は ^
最後は $
くらいは理解しているレベルです。

↓サンプルコードを拾ってきたのですが
パターンに指定する内容と、その後のコードがわかりません。

Sub macro1()
'RegExpオブジェクトの作成
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")

'正規表現の指定 With reg .Pattern = "[0-9]" 'パターンを指定 .IgnoreCase = False '大文字と小文字を区別するか(False)、しないか(True) .Global = True '文字列全体を検索するか(True)、しないか(False) End With

End Sub

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/10/26 13:02

その置換なら、正規表現を使う必要性は全くありませんが、置換そのものが目的じゃなくて、正規表現を使う練習が目的と言うことでしょうか?
退会済みユーザー

退会済みユーザー

2022/10/26 13:06

失礼しました。 確かに (3)東京 → 東京都は、正規表現必要なかったです。 (1)(2)な正規表現でないと置換できないかと思い質問しました。 練習もかねて正規表現での方法を教えていただきたいです。
退会済みユーザー

退会済みユーザー

2022/10/26 13:06

失礼しました。 確かに (3)東京 → 東京都は、正規表現必要なかったです。 (1)(2)は正規表現でないと置換できないかと思い質問しました。 練習もかねて正規表現での方法を教えていただきたいです。
guest

回答1

0

ベストアンサー

練習もかねて正規表現での方法を教えていただきたいです。

正規表現の練習なら、もう少し正規表現の意味のある題材を選んだ方が良いと思います。

普通の方法:

VBA

1Cells(1, 1) = "''" & Replace(Cells(1, 1), "東京", "東京都") & "'"

セルの先頭の'は、データに入らないので、''にしてあります。

正規表現を使った方法:(変数宣言略)

VBA

1Set reg = CreateObject("VBScript.RegExp") 2s = Cells(1, 1) 3reg.Pattern = "^" 4s = reg.Replace(s, "''") 5reg.Pattern = "$" 6s = reg.Replace(s, "'") 7reg.Pattern = "東京" 8s = reg.Replace(s, "東京都") 9Cells(1, 1) = s

投稿2022/10/26 13:31

otn

総合スコア84645

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/10/27 04:33

求めていた通りのご回答でした。 ありがとうございます。
otn

2022/10/27 11:38

同じ置換をたくさんの対象にするなら、正規表現毎に別々のRegexpオブジェクトを作るのでしょうね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問