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

質問編集履歴

10

修正

2020/05/20 00:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,45 +1,6 @@
1
- Sheet2のa、bのデータを上から順にSheet1のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
1
+ Sheet2のa、bのデータを上から順にSheet1に代入し、結果x、y、zを別のSheet3に出力したいです。
2
2
  計算はできたのですがSheet3に出力が上手くいきません。
3
3
 
4
- Sheet1
5
- ・ A B C       D E F
6
- 23 u
7
- 24 v
8
- 25
9
- 26 座標計算
10
- 27 k11-k31*u  k12-k32*u k13-k33*u
11
- 28 k21-k31*v  k22-k32*v k23-k33*v 計算
12
- 29 p1     p2       p3
13
- 30
14
- 31 逆行列
15
- 32 k11-k31*u k12-k32*u k13-k33*u
16
- 33 k21-k31*v k22-k32*v k23-k33*v      MINVERSE
17
- 34 p1 p2 p3
18
- 35
19
- 36 u-k14
20
- 37 v-k24 計算
21
- 38 -1
22
- 39
23
- 40 x
24
- 41 y MMULT(D32:34,B36:B38)
25
- 42 z
26
-
27
- Sheet2
28
- ・ A B
29
- 1 u v
30
- 2 10 20
31
- 3 25 30
32
- ・ ・ ・
33
- 342 ・ ・
34
-
35
- Sheet3
36
- ・ A B C
37
- 1 x y z
38
- 2
39
- 3
40
- ・  
41
- 342
42
-
43
4
  ```
44
5
  Sub Kamera()
45
6
 

9

修正

2020/05/20 00:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  Sheet2のa、bのデータを上から順にSheet1のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
2
- For文を書いて実行してみたのですが"Range"メソッドは失敗しましたとました。どこがいけないのでしょうか?
2
+ 計算はできたのですがSheet3に上手くきません。
3
3
 
4
4
  Sheet1
5
5
  ・ A B C       D E F
@@ -53,10 +53,10 @@
53
53
 
54
54
  Sheets("Sheet2").Select
55
55
 
56
- u = Range("Ai").Value
56
+ u = Range("A" & i).Value
57
57
  Debug.Print (u)
58
58
 
59
- v = Range("Bi").Value
59
+ v = Range("B" & i).Value
60
60
  Debug.Print (v)
61
61
 
62
62
  Sheets("Sheet1").Range("C23") = u
@@ -67,4 +67,5 @@
67
67
  Next i
68
68
 
69
69
  End Sub
70
+
70
71
  ```

8

修正

2020/05/19 13:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -32,8 +32,15 @@
32
32
  ・ ・ ・
33
33
  342 ・ ・
34
34
 
35
+ Sheet3
36
+ ・ A B C
37
+ 1 x y z
38
+ 2
39
+ 3
40
+ ・  
41
+ 342
42
+
35
43
  ```
36
- VBA
37
44
  Sub Kamera()
38
45
 
39
46
  Sheets("Sheet2").Select

7

修正

2020/05/19 13:31

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,24 +1,19 @@
1
- ```Sheet2 | Sheet1
2
- A B | A B C
3
- 1 u v | ・
4
- 2 10 20 | ・
5
- 3 25 30 | 23 u
6
- ・ ・ ・ | 24 v
7
- ・ ・ ・ |
8
-
9
1
  Sheet2のa、bのデータを上から順にSheet1のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
10
2
  For文を書いて実行してみたのですが"Range"メソッドは失敗しましたと出ました。どこがいけないのでしょうか?
11
3
 
12
- Sheet1の式は
4
+ Sheet1
13
5
  ・ A B C       D E F
6
+ 23 u
7
+ 24 v
8
+ 25
14
9
  26 座標計算
15
10
  27 k11-k31*u  k12-k32*u k13-k33*u
16
- 28 k21-k31*v  k22-k32*v k23-k33*v 計算
11
+ 28 k21-k31*v  k22-k32*v k23-k33*v 計算
17
12
  29 p1     p2       p3
18
13
  30
19
14
  31 逆行列
20
- 32 k11-k31*u k12-k32*u k13-k33*u
15
+ 32 k11-k31*u k12-k32*u k13-k33*u
21
- 33 k21-k31*v k22-k32*v k23-k33*v     MINVERSE
16
+ 33 k21-k31*v k22-k32*v k23-k33*v      MINVERSE
22
17
  34 p1 p2 p3
23
18
  35
24
19
  36 u-k14
@@ -29,7 +24,15 @@
29
24
  41 y MMULT(D32:34,B36:B38)
30
25
  42 z
31
26
 
27
+ Sheet2
28
+ ・ A B
29
+ 1 u v
30
+ 2 10 20
31
+ 3 25 30
32
+ ・ ・ ・
33
+ 342 ・ ・
32
34
 
35
+ ```
33
36
  VBA
34
37
  Sub Kamera()
35
38
 

6

コードの挿入

2020/05/19 13:25

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- Sheet2 | Sheet1
1
+ ```Sheet2 | Sheet1
2
2
  A B | A B C
3
3
  1 u v | ・
4
4
  2 10 20 | ・
@@ -29,8 +29,8 @@
29
29
  41 y MMULT(D32:34,B36:B38)
30
30
  42 z
31
31
 
32
+
32
33
  VBA
33
-
34
34
  Sub Kamera()
35
35
 
36
36
  Sheets("Sheet2").Select
@@ -56,4 +56,5 @@
56
56
 
57
57
  Next i
58
58
 
59
- End Sub
59
+ End Sub
60
+ ```

5

文法の修正

2020/05/19 13:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- Sheet1Sheet2
1
+ Sheet2Sheet1
2
2
  A B | A B C
3
3
  1 u v | ・
4
4
  2 10 20 | ・
@@ -6,10 +6,10 @@
6
6
  ・ ・ ・ | 24 v
7
7
  ・ ・ ・ |
8
8
 
9
- Sheet1のa、bのデータを上から順にSheet2のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
9
+ Sheet2のa、bのデータを上から順にSheet1のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
10
10
  For文を書いて実行してみたのですが"Range"メソッドは失敗しましたと出ました。どこがいけないのでしょうか?
11
11
 
12
- Sheet2の式は
12
+ Sheet1の式は
13
13
  ・ A B C       D E F
14
14
  26 座標計算
15
15
  27 k11-k31*u  k12-k32*u k13-k33*u

4

修正

2020/05/19 13:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,11 +6,9 @@
6
6
  ・ ・ ・ | 24 v
7
7
  ・ ・ ・ |
8
8
 
9
- Sheet1のa、bのデータを上から順にSheet2のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
9
+ Sheet1のa、bのデータを上から順にSheet2のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。
10
+ For文を書いて実行してみたのですが"Range"メソッドは失敗しましたと出ました。どこがいけないのでしょうか?
10
11
 
11
- A2とB2を代入しx,y,zを出力するプログラムを作ってみたのですがSheet3に数式が有効ではないセルを参照しているエラーが出てしまいました。
12
- 後、ここからFor文を加えたいのですがどうすればいいかわかりません。
13
-
14
12
  Sheet2の式は
15
13
  ・ A B C       D E F
16
14
  26 座標計算
@@ -31,34 +29,31 @@
31
29
  41 y MMULT(D32:34,B36:B38)
32
30
  42 z
33
31
 
34
-
35
- Sheet3のエラー
36
- ・ A B
37
- 1 x #REF!
38
- 2 y #REF!
39
- 3 z #REF!
40
-
41
32
  VBA
42
33
 
43
34
  Sub Kamera()
44
35
 
45
- Sheets("Sheet2").Select
36
+ Sheets("Sheet2").Select
46
37
 
47
- Dim u As Integer
38
+ Dim u As Integer
39
+ Dim v As Integer
40
+ Dim i As Integer
41
+
42
+ For i = 2 To 342
43
+
44
+ Sheets("Sheet2").Select
45
+
48
- u = Range("A2").Value
46
+ u = Range("Ai").Value
49
- Debug.Print (u)
47
+ Debug.Print (u)
48
+
49
+ v = Range("Bi").Value
50
+ Debug.Print (v)
51
+
52
+ Sheets("Sheet1").Range("C23") = u
53
+ Sheets("Sheet1").Range("C24") = v
54
+
55
+ Sheets("Sheet1").Range("B40:B42").Copy Sheets("Sheet3").Range("Ai:Ci")
56
+
57
+ Next i
50
58
 
51
- Dim v As Integer
52
- v = Range("B2").Value
53
- Debug.Print (v)
54
-
55
- Sheets("Sheet1").Range("C23") = u
56
- Sheets("Sheet1").Range("C24") = v
57
-
58
- End Sub
59
-
60
- Sub 実座標()
61
-
62
- Sheets("Sheet1").Range("B40:B42").Copy Sheets("Sheet3").Range("B1:B3")
63
-
64
59
  End Sub

3

見やすさ

2020/05/19 13:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,24 +1,18 @@
1
- Sheet1 Sheet2
1
+ Sheet1Sheet2
2
- A B A B C
2
+ A BA B C
3
- 1 u v
3
+ 1 u v
4
- 2 10 20
4
+ 2 10 20
5
- 3 25 30 23 u
5
+ 3 25 3023 u
6
- ・ ・ ・ 24 v
6
+ ・ ・ ・ 24 v
7
- ・ ・ ・
7
+ ・ ・ ・ |
8
-
9
8
 
10
-          40 x
11
-          41 y 
12
- 42 z
13
-
14
-
15
9
  Sheet1のa、bのデータを上から順にSheet2のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
16
10
 
17
11
  A2とB2を代入しx,y,zを出力するプログラムを作ってみたのですがSheet3に数式が有効ではないセルを参照しているエラーが出てしまいました。
18
12
  後、ここからFor文を加えたいのですがどうすればいいかわかりません。
19
13
 
20
14
  Sheet2の式は
21
- A B C D E F
15
+ A B C       D E F
22
16
  26 座標計算
23
17
  27 k11-k31*u  k12-k32*u k13-k33*u
24
18
  28 k21-k31*v  k22-k32*v k23-k33*v 計算
@@ -39,7 +33,7 @@
39
33
 
40
34
 
41
35
  Sheet3のエラー
42
- A B
36
+ A B
43
37
  1 x #REF!
44
38
  2 y #REF!
45
39
  3 z #REF!

2

式の追加

2020/05/19 12:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,27 +1,51 @@
1
1
  Sheet1 Sheet2
2
2
  A B A B C
3
- 1 a b
3
+ 1 u v
4
4
  2 10 20 ・
5
- 3 25 30 29 a
5
+ 3 25 30 23 u
6
- ・ ・ ・ 30 b
6
+ ・ ・ ・ 24 v
7
- ・ ・ ・
7
+ ・ ・ ・
8
-
8
+
9
9
 
10
10
           40 x
11
11
           41 y 
12
12
  42 z
13
13
 
14
14
 
15
- Sheet1のa、bのデータを上から順にSheet2のC29、30に代入し、結果x、y、zを別のSheet3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
15
+ Sheet1のa、bのデータを上から順にSheet2のC23,24に代入し、結果x、y、zを別のSheet3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
16
16
 
17
17
  A2とB2を代入しx,y,zを出力するプログラムを作ってみたのですがSheet3に数式が有効ではないセルを参照しているエラーが出てしまいました。
18
18
  後、ここからFor文を加えたいのですがどうすればいいかわかりません。
19
19
 
20
+ Sheet2の式は
21
+ A B C D E F
22
+ 26 座標計算
23
+ 27 k11-k31*u  k12-k32*u k13-k33*u
24
+ 28 k21-k31*v  k22-k32*v k23-k33*v 計算
25
+ 29 p1     p2       p3
26
+ 30
27
+ 31 逆行列
28
+ 32 k11-k31*u k12-k32*u k13-k33*u
29
+ 33 k21-k31*v k22-k32*v k23-k33*v     MINVERSE
30
+ 34 p1 p2 p3
31
+ 35
32
+ 36 u-k14
33
+ 37 v-k24 計算
20
- x #REF!
34
+ 38 -1
35
+ 39
21
- y #REF!
36
+ 40 x
37
+ 41 y MMULT(D32:34,B36:B38)
22
- z #REF!
38
+ 42 z
23
39
 
24
40
 
41
+ Sheet3のエラー
42
+ A B
43
+ 1 x #REF!
44
+ 2 y #REF!
45
+ 3 z #REF!
46
+
47
+ VBA
48
+
25
49
  Sub Kamera()
26
50
 
27
51
  Sheets("Sheet2").Select
@@ -34,13 +58,13 @@
34
58
  v = Range("B2").Value
35
59
  Debug.Print (v)
36
60
 
37
- Sheets("Sheet1").Range("C29") = u
61
+ Sheets("Sheet1").Range("C23") = u
38
- Sheets("Sheet1").Range("C30") = v
62
+ Sheets("Sheet1").Range("C24") = v
39
63
 
40
64
  End Sub
41
65
 
42
66
  Sub 実座標()
43
67
 
44
- Sheets("Sheet1").Range("B40:B42").Copy Sheets("Sheet3").Range("A2:C2")
68
+ Sheets("Sheet1").Range("B40:B42").Copy Sheets("Sheet3").Range("B1:B3")
45
69
 
46
70
  End Sub

1

プログラムの記載

2020/05/19 12:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,15 +1,46 @@
1
- Excel1 Excel2
1
+ Sheet1 Sheet2
2
- A B A B C
2
+ A B A B C
3
- 1 a b
3
+ 1 a b
4
4
  2 10 20 ・
5
- 3 25 30 29 a
5
+ 3 25 30 29 a
6
- ・ ・ ・ 30 b
6
+ ・ ・ ・ 30 b
7
7
  ・ ・ ・
8
-
8
+
9
9
 
10
-         40 x
10
+          40 x
11
-         41 y 
11
+          41 y 
12
- 42 z
12
+ 42 z
13
13
 
14
+
14
- Excel1のa、bのデータを上から順にExcel2のC29、30に代入し、結果x、y、zを別のExcel3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
15
+ Sheet1のa、bのデータを上から順にSheet2のC29、30に代入し、結果x、y、zを別のSheet3に出力したいです。vbaを用いて、一回一回のデータはできるのですが上から順に連続ですることが出来ません。
16
+
17
+ A2とB2を代入しx,y,zを出力するプログラムを作ってみたのですがSheet3に数式が有効ではないセルを参照しているエラーが出てしまいました。
18
+ 後、ここからFor文を加えたいのですがどうすればいいかわかりません。
19
+
20
+ x #REF!
21
+ y #REF!
22
+ z #REF!
23
+
24
+
15
- よろしくお願いします。
25
+ Sub Kamera()
26
+
27
+ Sheets("Sheet2").Select
28
+
29
+ Dim u As Integer
30
+ u = Range("A2").Value
31
+ Debug.Print (u)
32
+
33
+ Dim v As Integer
34
+ v = Range("B2").Value
35
+ Debug.Print (v)
36
+
37
+ Sheets("Sheet1").Range("C29") = u
38
+ Sheets("Sheet1").Range("C30") = v
39
+
40
+ End Sub
41
+
42
+ Sub 実座標()
43
+
44
+ Sheets("Sheet1").Range("B40:B42").Copy Sheets("Sheet3").Range("A2:C2")
45
+
46
+ End Sub