セル範囲の左上隅と右下隅のセルを指定します。オブジェクト、またはマクロの言語で単一のセルに名前を付ける文字列を指定できます。絶対に分かりませんよね、私も読んで理解できません。(笑)だから、書店には、入門書が並んでいるのでしょう。言葉にすると結構難しいのです。指定可能なパターンです。全セルまだまだ指定方法はあるでしょうが、まあこんなところにしましょうどうですか、ヘルプの説明を読んで、上の全てが理解できますでしょうか。太字は必ず覚える必要があるもので、VBAで実際によく使います。それ以外は、覚える必要も無いし、使う事もないと思いまう。(使ってもよいですけどね)特に8.や12.などは、悪ふざけの範囲です。エラーにはなりません、そしてそれが問題です。VBAでバグにより結果的にこのような指定になってしまい、とんでも無い事になる場合があります。Rangeは、セル範囲(複数セル)を扱う時に使用します。単一セルでも使いますが、その場合は、行列を指定するCellsを使う方が多いです。Rangeオブジェクトに対し、プロパティを指定しない場合は、Valueプロパティが規定となります。プロパティは、数多く存在しています、説明しきれませんので、使う機会があれば少しづつ説明します。オブジェクトブラウザを見るのも勉強になると思います。CellsCellsはWorksheetオブジェクトまたはRangeオブジェクトのプロパティで、セルを表すRangeオブジェクトを返します。値の取得のみ可能です。オブジェクトを返すオブジェクト式を指定します。値の取得のみ可能です。expression.Cellsこれも全くもって、理解不能な説明です。指定可能なパターンです。A1セルCellsの指定方法はあまりありません。列)で指定すれば良いです。ヘルプで「値の取得のみ可能」と言うのは、WorksheetオブジェクトのCellsプロパティとしての説明です。理解すべきは、Cellsオブジェクトと言うのは存在しない事です、CellsはRangeオブジェクトを返します。WorksheetのCellsプロパティは、シートの全セル範囲のRangeオブジェクトです。この部分の理解が不足していることが多いのだろうと思われます。Cellsプロパティは、シートの全セル範囲のRangeオブジェクトなのですから、その行列の位置を指定することで、単一セルになるのです。1)の指定の方がしっくりくるかもしれません。1)は、この省略形とも言えます。Rangeオブジェクトなので、プロパティを指定しない場合は、Valueプロパティが規定となります。RangeとCellsの極みセル「C3」を指定する場合のパターンです。1)上の2つは普通の指定ですよね、でも下の3つは何でしょう。実際に使用することはありません。これらが全て同一セルを指すことを理解するには、Rangeオブジェクト、Cellsプロパティを正しく理解している必要があります。6.に関しては、オブジェクトの参照についても理解する必要があります。1)で、C3セルを指す事になります。Offsetと同じです、OffsetもRangeオブジェクトを返すプロパティです。こんな使い方をすることは無いので、覚える必要はありません。これが原因で、意味不明なバグで悩む事もあると言う事を知っておいて下さい。Rangeを引数で渡した場合に、その範囲を超える指定をしても、動作してしまうのです。・・・ちょっと難しいですね、あくまで、理解を深める為のお話です。Rangeオブジェクトのお話Rangeオブジェクトを理解するためのたとえ話です。以下を想像して下さい。碁盤の目に区切られた場所があり、マス目は、横にA,B,C、縦に1,2,3と見出しが付いています。・それぞれ大きさも、色ももまちまちです。・それぞれの中には、色々な物が入っています。・それぞれに、小人が沢山付いています。・直接ダンボールにふれることも、動かすこともできません。・こちらで解るのは、ダンボールに備え付けられている電話番号だけです。・この電話は、他の箱に転送可能です。・ダンボールに何かをしたい場合は、電話をかけ、小人に指示します。想像できましたか?奇妙な光景です。(笑)このダンボールがオブジェクト、小人がプロパティやメソッド、電話番号がアドレスです。ダンボール("A1")が左上のダンボールになりますが、ダンボールを持てるわけではありません。ダンボール("A1")は、左上のダンボールの電話番号でしかありません。中身を知るには、小人のValueさんに電話で聞くしかありません、それがダンボール("A1").Valueです。色を変えるには、小人のInteriorさんを通し、部下の小人のColorさんに、電話で指示します。ダンボール("A1:B2")とすると、A1,A2,B1,B2へ同時に電話する事が出来ます。ダンボール("A1")に電話し、続けてOffset(1,1)と伝えると、ダンボール("A1")への電話は、1つ下、1つ右、の箱に転送されます。従って、ダンボール("A1").Offset(1,1)は、ダンボール("B2")に電話しているのと同じことです。ダンボール("A1")は、電話番号を変数に入れているだけです。結果として、ダンボール(1,1)に対する指示も、変数に対する指示も同じことになります。ははは、って感じですが、これが私の頭の中でのRangeオブジェクトの想像図です。イメージできましたでしょうか。個別のプロパティを説明しなくても、これだけの説明が必要です。本来なら、他のプロパティも説明したいところですが、今回は無理でした。使う機会があれば、都度説明するようにします。VBAでは必須知識になります。前回も出た、Findは、Rangeオブジェクトのメソッドです。厳密な速度測定なら、全述のItemの指定による速度の違いも考慮すべきです。難しいですが、エクセルですから、結局は、このRangeに対する操作が全てです。どのようなプロパティ、メソッドがあるかは、折を見て調べておく事は、大変役に立つと思います。私もまだまだ、知らないプロパティ、メソッドは沢山あります。今回は、この辺で終わります。次回からは、また、ソフト作成を進めましょう。仕様をどうしようか悩んでいます。難しくせず、でも使いやすく、高機能にしようと・・・欲張り過ぎ(笑)ではでは、また次回に。Next)|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作ホームマクロVBAエクセル顧客管理RangeとCellsの深遠このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用ホームマクロVBAエクセル顧客管理RangeとCellsの深遠このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。