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

回答編集履歴

3

修正

2018/11/07 10:04

投稿

退会済みユーザー
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

ミス修正

2018/11/07 10:03

投稿

退会済みユーザー
answer CHANGED
File without changes

1

ミス修正

2018/11/07 09:14

投稿

退会済みユーザー
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
- itm = "N"
7
+ Dim i As Long, j As Long
8
- Case "N"
9
- itm = "Y"
8
+ For i = LBound(arr, 1) To UBound(arr, 1)
10
- End Select
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
- Next itm
11
+ Next
12
- End Sub
12
+ Next
13
13
  ```