-------------------------------------------- Sub kaitou1() Dim kai Dim motogyo Dim listgyo motogyo = kai * 3 - 2 ’★ listgyo = 1 For kai = 1 To 10 Range("C" & listgyo).Value = Range("A" & motogyo).Value & Range("A" & motogyo).Value listgyo = listgyo + 1 Next End Sub
2020/05/12 19:10
小川慶一さんのコメント
(コメントID: 6571)
Kenさん:
こんにちは。
いただいたサンプルだと、★の行が実行される段階では、 kai は、どんな値も設定されていません。
Dim kai '← kai という変数を作っただけ(値はまだ入っていない) Dim motogyo '← motogyo という変数を作っただけ(値はまだ入っていない Dim listgyo '← listgyo という変数を作っただけ(値はまだ入っていない motogyo = kai * 3 - 2 ' kai には値が入っていないので、 0 とみなされる。 0 * 3 - 2 で、右辺の計算結果は「-2」となる。
2020/05/12 21:32
Kenさんのコメント
(コメントID: 6573)
小川先生 早速のご回答、ありがとうございます。 motogyo = kai * 3 - 2 をFor…行の下(Kaiの値が入った後)にしたら、正しく処理できました。
Kenさんの投稿
(投稿ID: 4718)
調べてみたところ
motogyo = kai * 3 - 2 ’★
で
kai=1
なのに
motogyo=-2
になっています。
これは何故なのでしょうか?
--------------------------------------------
Sub kaitou1()
Dim kai
Dim motogyo
Dim listgyo
motogyo = kai * 3 - 2 ’★
listgyo = 1
For kai = 1 To 10
Range("C" & listgyo).Value = Range("A" & motogyo).Value & Range("A" & motogyo).Value
listgyo = listgyo + 1
Next
End Sub
小川慶一さんのコメント
(コメントID: 6571)
こんにちは。
いただいたサンプルだと、★の行が実行される段階では、 kai は、どんな値も設定されていません。
Dim kai '← kai という変数を作っただけ(値はまだ入っていない)
Dim motogyo '← motogyo という変数を作っただけ(値はまだ入っていない
Dim listgyo '← listgyo という変数を作っただけ(値はまだ入っていない
motogyo = kai * 3 - 2 ' kai には値が入っていないので、 0 とみなされる。 0 * 3 - 2 で、右辺の計算結果は「-2」となる。
Kenさんのコメント
(コメントID: 6573)
早速のご回答、ありがとうございます。
motogyo = kai * 3 - 2
をFor…行の下(Kaiの値が入った後)にしたら、正しく処理できました。
小川慶一さんのコメント
(コメントID: 6574)
良かったです。
こういうときは、上から順に慎重に検討するとよいです。
慣れないうちはよくある間違いです。
> 小川先生
> 早速のご回答、ありがとうございます。
> motogyo = kai * 3 - 2
> をFor…行の下(Kaiの値が入った後)にしたら、正しく処理できました。