5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
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の値が入った後)にしたら、正しく処理できました。