| 
    
     |  | ▼こまつ さん: >▼kanabun様
 >感謝致します!!
 >大変わかりやすく、理解できました。たぶんw
 >
 >Cells(rows.count,1)=cells(A65536,1)なら、別に後者を記述しても
 >間違いではないんですよね?
 >
 Excel2003までのワークシートなら
 Cells(Rows.count,1) = Cells(65536,1) で, 同じことです。
 ~~~~~A65536ではありません
 また、Cells(65536, 1) と Range("A65536") は同じセルです。
 (余談)
 Cells(65536, 1) は Cells(65536, "A") と書くこともできます。
 列番号の代わりに列名を使っているわけですが、シート内に
 グラフがあるときはこの記述法は使わないほうがいいです。
 グラフが選択されてると、Cells(65536, "A")ではExcelが迷走して
 しまいます。
 >たとえば、Excelの最後の行数が10000までなら、rows.count,1は、
 >(A10000,1)ってことなんですね。あってるかな?
 あってないですね。ご自分で訂正してください。
 
 >Constはなぜ宣言したのでしょうか?
 >毎回、列番号打ってもいいのではないのでしょうか?
 >逆にCOL店舗CDって記述する方が、めんどーな気がするのですが。
 >後から見てわかり易いって事なんですか?
 >それとも連想配列で読み込ませるときには、Constしとかないと、
 >だめだったのでしょうか?
 
 名前でなんらかの固定数値を別名定義する理由は、こまつさんの
 推定のうち前者に該当します。後者(連想配列云々)とは無関係
 です。
 >毎回、列番号打ってもいいのではないのでしょうか?
 >逆にCOL店舗CDって記述する方が、めんどーな気がするのですが。
 という疑問は現段階では しごく「ごもっとも」な感想ですが、
 実際はプログラムのはじめに
 「このプロシージャのなかで <COL店舗CD> とは 数値1を意味する」
 とConst宣言しておくと、
 Cells(Rows.Count, 1)
 よりも
 Cells(Rows.Count, COL店舗CD) '←店舗CDのある列番号
 と書いてあるほうが、どういう列を参照しているのか意味が分かり
 やすいじゃないですか? 「COL」は Column(列)の意味でしょうし、
 「後から見てわかり易い」どころか、プログラムを書いている現時
 点ですでに 定数名を使うことのメリットが出ていますよ。
 >COL店舗CDって記述する方が、めんどーな気がする
 そんなにめんどーではないですよ、
 cells(rows.count, col
 までタイプして Ctrl+[スペース]キー で候補が出ますでしょ?
 そこから選べばいいのです(TABキーで確定)
 
 Cells はセルの集合すなわち セルのコレクションだということを
 覚えておきましょう。
 すると、Worksheets(1).Cells(1) というコードが
 Worksheets.Item(1).Cells.Item(1) の簡便表現であり、
 ワークシートの集合の1番目のアイテムの全セルの集合内の
 1番目の要素のことを表していることが理解しやすくなります。
 
 セル範囲の指定の仕方は状況に応じて RangeプロパティとCellsプロパティ
 を使い分けます。
 Worksheets(1).Cells.ClearContents
 は ワークシート1のすべてのセルの値を初期化します。
 まだ使われてないセルをクリアする必要はないので
 Worksheets(1).UsedRange.ClearContents
 のほうが分かりやすいかと思います。
 Range("C1").Cells(2,1) というのは Range("C1").Cells.Item(2,1) のこと
 で、[C2]という単一セルを参照しています。
 Range("C1").Range("A1:E1") といえば、[C1]セルを基点[A1]として
 右方向に5つのセル要素を表しますから、[C1:G1]になります。。。
 などなど、
 ご自分で問題を作って 試されるとよいでしょう。
 
 |  |