回答編集履歴
3
修正
answer
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
失礼しました。
|
4
4
|
|
5
|
-
For Eachの場合
|
5
|
+
For Eachの場合itmに代入した値がarrには反映されないので質問されたのだと考えます。
|
6
|
+
従って次のコードのように配列の初めから終わりまでカウンタでループさせて代入してください。
|
6
7
|
```VBA
|
7
8
|
Dim i As Long, j As Long
|
8
9
|
For i = LBound(arr, 1) To UBound(arr, 1)
|
2
ミス修正
answer
CHANGED
File without changes
|
1
ミス修正
answer
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
同じ要素を書き換えるなら、こんな感じで判断して代入するだけで良いかと
|
1
|
+
~~同じ要素を書き換えるなら、こんな感じで判断して代入するだけで良いかと~~
|
2
2
|
|
3
|
+
失礼しました。
|
4
|
+
|
5
|
+
For Eachの場合ループから抜けると値が確定されないので次のコードをお使いください。
|
3
6
|
```VBA
|
4
|
-
For Each itm In arr()
|
5
|
-
Select Case itm
|
6
|
-
Case "Y"
|
7
|
-
|
7
|
+
Dim i As Long, j As Long
|
8
|
-
Case "N"
|
9
|
-
|
8
|
+
For i = LBound(arr, 1) To UBound(arr, 1)
|
10
|
-
|
9
|
+
For j = LBound(arr, 2) To UBound(arr, 2)
|
10
|
+
arr(i, j) = IIf(arr(i, j) = "Y", "N", IIf(arr(i, j) = "N", "Y", arr(i, j)))
|
11
|
-
|
11
|
+
Next
|
12
|
-
|
12
|
+
Next
|
13
13
|
```
|