回答編集履歴
2
コード追加
answer
CHANGED
@@ -36,4 +36,12 @@
|
|
36
36
|
End If
|
37
37
|
Next
|
38
38
|
End Sub
|
39
|
+
```
|
40
|
+
|
41
|
+
ちなみに、
|
42
|
+
```vba
|
43
|
+
sh1.Cells(R1, "E") = Left(Mid(rngSearch, InStr(rngSearch, "【") + 1), InStr(Mid(rngSearch, InStr(rngSearch, "【") + 1), "】") - 1)
|
44
|
+
```の部分は、下記のように簡略化できます。
|
45
|
+
```vba
|
46
|
+
sh1.Cells(R1, "E") = Split(Split(rngSearch, "【")(1), "】")(0)
|
39
47
|
```
|
1
コード追加
answer
CHANGED
@@ -4,4 +4,36 @@
|
|
4
4
|
Set rngSearch = myRange.Find(What:="*【*】*", LookAt:=xlWhole, SearchOrder:=xlByColumns)
|
5
5
|
```
|
6
6
|
|
7
|
-
[ワイルドカードを使って検索(Find メソッド) \| ExcelWork.info](https://excelwork.info/excel/findwildcard/)
|
7
|
+
[ワイルドカードを使って検索(Find メソッド) \| ExcelWork.info](https://excelwork.info/excel/findwildcard/)
|
8
|
+
|
9
|
+
上記以外にも、いろいろ間違っていたり、余分なコードがあるので、修正しました。
|
10
|
+
修正箇所が多いので、いちいち解説するのは大変なのて、もとコードと見比べて、どこが違っているかご自身で研究してください。
|
11
|
+
|
12
|
+
```vba
|
13
|
+
Sub test()
|
14
|
+
Dim sh1 As Worksheet
|
15
|
+
Dim rngSearch As Range
|
16
|
+
Dim myRange As Range
|
17
|
+
Dim strAdr As String
|
18
|
+
Dim s As Variant
|
19
|
+
Dim R1 As Long, R2 As Long
|
20
|
+
On Error Resume Next
|
21
|
+
Set sh1 = Worksheets("Sheet1")
|
22
|
+
R1 = sh1.Cells(Rows.Count, "E").End(xlUp).Row + 1
|
23
|
+
For Each s In ThisWorkbook.Worksheets
|
24
|
+
If s.Name <> "Sheet1" Then
|
25
|
+
R2 = s.Cells(Rows.Count, "B").End(xlUp).Row
|
26
|
+
Set myRange = s.Range(s.Cells(1, "B"), s.Cells(R2, "B"))
|
27
|
+
Set rngSearch = myRange.Find(What:="*【*】*", LookAt:=xlWhole, SearchOrder:=xlByColumns)
|
28
|
+
If Not rngSearch Is Nothing Then
|
29
|
+
strAdr = rngSearch.Address
|
30
|
+
Do
|
31
|
+
sh1.Cells(R1, "E") = Left(Mid(rngSearch, InStr(rngSearch, "【") + 1), InStr(Mid(rngSearch, InStr(rngSearch, "【") + 1), "】") - 1)
|
32
|
+
R1 = R1 + 1
|
33
|
+
Set rngSearch = myRange.FindNext(rngSearch)
|
34
|
+
Loop While rngSearch.Address <> strAdr
|
35
|
+
End If
|
36
|
+
End If
|
37
|
+
Next
|
38
|
+
End Sub
|
39
|
+
```
|