回答編集履歴
2
syuusei
answer
CHANGED
@@ -73,7 +73,7 @@
|
|
73
73
|
aryVal = Split(strVal, "x")
|
74
74
|
|
75
75
|
'縦・横・高さのループ処理(配列の個数だけループ処理)
|
76
|
-
For iIdx = 0 To UBound(aryVal)
|
76
|
+
For iIdx = 0 To UBound(aryVal) - 1
|
77
77
|
|
78
78
|
If iIdx > 2 Then Exit For '3回以上はループしない。(1x2x3x4でも3まで処理)
|
79
79
|
|
1
tuiki
answer
CHANGED
@@ -47,4 +47,42 @@
|
|
47
47
|
|
48
48
|
ExcelでもVBAでもないアドバイスになってしまいますが、今回のニーズにマッチしそうだったのでご紹介してみました。
|
49
49
|
|
50
|
-
参考になれば幸いです。
|
50
|
+
参考になれば幸いです。
|
51
|
+
|
52
|
+
追記:サンプルコード
|
53
|
+
サンプル公開を控えたのは丸投げ対策でしたが、marutokiさんからは学習意欲がみられるのでサンプルコードを提供させていただきます。
|
54
|
+
|
55
|
+
```
|
56
|
+
Sub test()
|
57
|
+
|
58
|
+
Dim sht As Worksheet '対象シート
|
59
|
+
Set sht = ActiveSheet '今回はとりあえずアクティブシートを対象シートに設定
|
60
|
+
|
61
|
+
Dim iRow As Integer '行ループ
|
62
|
+
Dim iIdx As Integer '配列から値を取得する
|
63
|
+
|
64
|
+
Dim strVal As String 'F列セル値
|
65
|
+
Dim aryVal() As String '分割結果
|
66
|
+
|
67
|
+
'2行目からF列最終行までループ処理
|
68
|
+
For iRow = 2 To sht.Cells(Rows.Count, "F").End(xlUp).Row
|
69
|
+
'F列から値を取得
|
70
|
+
strVal = sht.Cells(iRow, "F").Value
|
71
|
+
|
72
|
+
'取得した値を"x"で分割
|
73
|
+
aryVal = Split(strVal, "x")
|
74
|
+
|
75
|
+
'縦・横・高さのループ処理(配列の個数だけループ処理)
|
76
|
+
For iIdx = 0 To UBound(aryVal)
|
77
|
+
|
78
|
+
If iIdx > 2 Then Exit For '3回以上はループしない。(1x2x3x4でも3まで処理)
|
79
|
+
|
80
|
+
'1回目:V列(22列)、2回目U列(21列)、3回目T列(20列)に値を出力
|
81
|
+
sht.Cells(iRow, 22 - iIdx).Value = aryVal(iIdx)
|
82
|
+
|
83
|
+
Next iIdx
|
84
|
+
|
85
|
+
Next iRow
|
86
|
+
|
87
|
+
End Sub
|
88
|
+
```
|