|    | 
     ▼こまつ さん: 
>▼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]になります。。。 
などなど、 
 ご自分で問題を作って 試されるとよいでしょう。 
 | 
     
    
   |