Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
Re: 行数や列数の増減に対応できるようにしたい
投稿日時: 18/05/13 12:20:36
投稿者: simple

行数や列数の増減に対応できるようにしたい
http://www.moug.net/faq/viewtopic.php?t=77080
 
質問をされたまま閉じられたので、追記します。
 
その前に。
syさん、.Valueについてのコメントありがとうございます。
そうですね。少なくとも今の段階では不要な議論かもしれませんね。
どうしてもとは思っていませんので、指導方針を確認しました。
 
質問者さんへ。
 
>・二重ループの使用というのは、For〜Next文を入れ子にして使うということでしょうか?
そうです。
「行数や列数の増減に対応できるようにしたい」というテーマだとすると、
Cells(3 + c, 9) = Cells(3 + c, 3) + Cells(3 + c, 4) + Cells(3 + c, 5) + Cells(3 + c, 6) + Cells(3 + c, 7) + Cells(3 + c, 8)
のように、各セルを列挙していては、絶対に
「行数や列数の増減に対応できない」じゃないですか、
と考えましたが、いかがですか?
 
> ・お伝えし切れなくて大変申し訳ございませんが、学習の指導上SumやAverageなどの関数は使わず
> 演算子を使い四則演算のパターンでやらなければいけないということでこのパターンを書いております。

どうしてもそれを使いなさいということではありません。
「行数や列数の増減に対応できるようにしたい」というリクエストに応えたものです。
Range(Cells(3 + c, 3),Cells(3 + c, 最終列))などに対して
Sum、Averageを使うのが「行数や列数の増減に対応」する自然な方法かと思いました。
 
---------------------
> このような書き方が推奨されないのはどうしてですか?
t = 0
   For t = t To 8
 
For t= 初期値 to 最終値 という指定をするものですから、
素直にそう書けばよいわけで、
繰り返しの前に
初期値 = なんとか、
と別に設定する必要はない、ということです。
 
単に、For t = 0 To 8 と書く方が自然です。
 
また、ループ変数と初期値に同じ変数を使うのは、
特に意味が無い限り、混乱のもとです。
 
---------------------
> If文を使う指示があったのでその部分のみであれば
> 間違っていないというご指導をいただきました。
IF文が必須とは、このスレッドのどこに明記されていますか?
後出しですよね。
 
また、評価判定のところは、
18/05/13 10:54:36に追記しましたので、
それも参考にして下さい。

投稿日時: 18/05/13 13:06:55
投稿者: simple

行き違いでしたね。
こちらは閉じます。
コメントも特に要りません。