回答編集履歴

2

修正

2021/09/24 02:40

投稿

jinoji
jinoji

スコア4592

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- If m Like "[A-Z]" Then '英字の場合(=先手)
39
+ If m Like "[A-Z]" Then '英大文字の場合(=先手)
40
40
 
41
41
  Select Case m '漢字に変換
42
42
 
@@ -54,7 +54,7 @@
54
54
 
55
55
 
56
56
 
57
- Else '英字以外(漢字)の場合(=後手)
57
+ Else '上記以外(英小文字、漢字)の場合(=後手)
58
58
 
59
59
  w = w & WorksheetFunction.Rept(m, n) '後手の持ち駒変数に追加
60
60
 

1

追記

2021/09/24 02:40

投稿

jinoji
jinoji

スコア4592

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Sub sample()
6
6
 
7
- Dim mc
7
+ Dim mc '持ち駒の文字列
8
8
 
9
9
  mc = "S2NP4歩"
10
10
 
@@ -12,21 +12,33 @@
12
12
 
13
13
  Dim i, m, n, b, w
14
14
 
15
+
16
+
15
- n = 1
17
+ n = 1 '各駒の数(デフォルトは1つ)
18
+
19
+
16
20
 
17
21
  For i = 1 To Len(mc)
18
22
 
19
- m = Mid(mc, i, 1)
20
23
 
21
- If IsNumeric(m) Then
22
24
 
23
- n = m
25
+ m = Mid(mc, i, 1) '持ち駒の文字列を1文字ずつ取得
24
26
 
25
- Else
26
27
 
27
- If m Like "[A-Z]" Then
28
28
 
29
+ If IsNumeric(m) Then '数字の場合
30
+
31
+ n = m '駒の枚数として記憶
32
+
33
+
34
+
35
+ Else '数字以外(英字、漢字)
36
+
37
+
38
+
39
+ If m Like "[A-Z]" Then '英字の場合(=先手)
40
+
29
- Select Case m
41
+ Select Case m '漢字に変換
30
42
 
31
43
  Case "S": m = "銀"
32
44
 
@@ -36,15 +48,23 @@
36
48
 
37
49
  End Select
38
50
 
39
- b = b & WorksheetFunction.Rept(m, n)
51
+ b = b & WorksheetFunction.Rept(m, n) '先手の持ち駒の変数に追加
40
52
 
41
- Else
53
+ ' 例:Rept("銀", 2)は銀銀
42
54
 
55
+
56
+
57
+ Else '英字以外(漢字)の場合(=後手)
58
+
43
- w = w & WorksheetFunction.Rept(m, n)
59
+ w = w & WorksheetFunction.Rept(m, n) '後手の持ち駒変数に追加
60
+
61
+
44
62
 
45
63
  End If
46
64
 
65
+
66
+
47
- n = 1
67
+ n = 1 '枚数をクリア
48
68
 
49
69
  End If
50
70