
大量の計算式の中に含まれている
AA(BBB)やSS(CCC)のような、丸かっこで囲われた文字列を抽出し、かっこの前にある文字列を後ろにくっつけてたいです。※文字列と文字列の間にピリオド(.)を追加したい。
置換前 AA(BBB)
置換後 BBB.AA
このような置換をしたいのですが、1つのセルの中に複数個このような置換をしたい文字列が出てきます。
例)置換前
A = 100.0
QQ(ABC) = ZZ(DEF) - 50.0
IF(QQ(ABC) < 0.0) THEN
SS(ABC) = 100.0
END IF
↓
例)置換後
A = 100.0
ABC.QQ = DEF.ZZ - 50.0
IF(ABC.QQ < 0.0) THEN
ABC.SS = 100.0
END IF
どのように組めば上記のような置換ができるでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
>丸かっこで囲われた文字列を抽出し、かっこの前にある文字列を後ろに~
ご説明だけの条件だと、
QQ(ABC) = ZZ(DEF) - 50.0
は
DEF.ABC.QQ = ZZ - 50.0
とかになりそうですが・・・
ですので、「()内の文字列も、その前の文字列も連続した英大文字だけを対象とする」という条件を勝手に付加しました。
(条件が異なる場合でも、同様の方法で可能でしょうから、修正することでできるものと思います)
◇ 対象文字列がA1セルにあり、B1セルに置換後を表示すると仮定して、
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "([A-Z]+)\(([A-Z]+)\)"
Range("B1").Value = .Replace(Range("A1").Text, "$2.$1")
End With
とかではいかがでしょうか?
(ご提示の例であれば、置換前は置換後のようになります)
ご回答ありがとうございます。
なるほど。
条件定義が不十分のようですね。
ちなみにカッコ内の文字列には英大文字のみではなく、数字と記号(半角ハイフン‐)が含まれます。
諸事情で今回の件、置換する必要が無くなったためいったん質問を閉めさせていただきます。
また条件定義をやり直して再質問させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現
Visual Basic(VBA)
-
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
-
4
VBAの計算について
Visual Basic(VBA)
-
5
vbaの計算 if elseと範囲について
Visual Basic(VBA)
-
6
VBAでのMATCH関数
Visual Basic(VBA)
-
7
VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく
Visual Basic(VBA)
-
8
特定の文字を簡単な操作で半角スペースに変換するか削除したい
Visual Basic(VBA)
-
9
※初心者です マクロVBAについて
Visual Basic(VBA)
-
10
VBA言語プログラミング
Visual Basic(VBA)
-
11
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
-
12
ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています
Visual Basic(VBA)
-
13
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
14
VBAで重複データを確認したい
Visual Basic(VBA)
-
15
追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し
Visual Basic(VBA)
-
16
VBAチェックボックスで有効無効切り替えできるように
Visual Basic(VBA)
-
17
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
18
VBA For Each 〜 複数条件について
Visual Basic(VBA)
-
19
VBAコードで質問があります
Visual Basic(VBA)
-
20
excelにて、ある固定値から連番を振りたいが、上限値が異なる連番を振る処理を複数回行いたい場合
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
C言語でテキストファイルの内容...
-
5
テキストボックスの文字列を置...
-
6
サクラエディタ 数字だけを置...
-
7
vbs 連続した8タブを空白に変換...
-
8
Eclipse 改行後のタブ
-
9
秀丸マクロで、あらかじめ選択...
-
10
EXCEL警告「置換対象のデータが...
-
11
csvデータ ダブルクォーテ...
-
12
EXCEL VBA でCTRL+Fのダイア...
-
13
バッチファイルの処理が実際の...
-
14
DREAMWEAVERでの画像の入れ替え
-
15
\\(円)記号を置換したい
-
16
WordのVBAについて
-
17
○文字目に文字挿入
-
18
正規表現で、特定の文字列を含...
-
19
住所編集のマクロを組んでいて...
-
20
正規表現 特定の文字列を含む行...
おすすめ情報
公式facebook
公式twitter