teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード例を具体化

2020/04/21 05:10

投稿

programming
programming

スコア476

answer CHANGED
@@ -15,4 +15,44 @@
15
15
  ```
16
16
 
17
17
  凡例を順にたどっていき、特定の条件を満たした文字列を```''```に置き換えたりすれば良いかと思います。
18
- またここでは示していませんが、RegExpを使うには別途設定などが必要です。
18
+ またここでは示していませんが、RegExpを使うには別途設定などが必要です。
19
+
20
+ ---
21
+
22
+ **追記**
23
+ RegExpを具体的に使うコードを書いてみました。
24
+ 動作確認はしていないので、そもそも動くかわかりません。
25
+
26
+ 事前に参照設定で「Microsoft VBScript Regular Expressions 5.5」にチェック
27
+
28
+ ```VBA
29
+ Sub Sample()
30
+ 'RegExpオブジェクトの作成
31
+ Dim reg1 As Object, reg2 As Object
32
+ Set reg1 = CreateObject("VBScript.RegExp")
33
+ Set reg2 = CreateObject("VBScript.RegExp")
34
+
35
+ '正規表現の指定
36
+ With reg1
37
+ .Pattern = "^.*_" '正規表現を定義
38
+ .IgnoreCase = False '大文字と小文字を区別するかどうか
39
+ .Global = False '文字列全体を検索するかどうか(Falseだと最初の合致するパターンしか適用されない)
40
+ End With
41
+
42
+ With reg2
43
+ .Pattern = "BBB"
44
+ .IgnoreCase = False
45
+ .Global = True
46
+ End With
47
+
48
+ With Worksheets(1).ChartObjects(1).Chart
49
+ For i = 1 To .SeriesCollection.Count
50
+ Dim str As String
51
+ str = .SeriesCollection(i).Name
52
+ str = reg1.Replace(str, "") 'strをRegExpのReplaceメソッドで置換
53
+ str = reg2.Replace(str, "hoge") 'strをRegExpのReplaceメソッドで置換
54
+ .SeriesCollection(i).Name = str
55
+ Next i
56
+ End With
57
+ End Sub
58
+ ```