[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ListRows(1).Rangeのrangeの働き』(hiro)
ActiveSheet.ListObjects(1).ListRows(1).Range.Select
なぜ、rangeが必要なのでしょうか。
このrangeはどういう働きをしているのですか?
そういうものならばそういうものとして覚えますが…
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
(隠居じーさん) 2018/05/11(金) 19:01
Object Browserは少し見ただけではどういうものかよくわからなかったのですが、知らなかったので、時間があるときに見てみます。情報有難うございます。
自分ではうまく見つけられないこともあるので、紹介でも助かります。
ありがとうございます。
(hiro) 2018/05/11(金) 19:27
>なぜ、rangeが必要なのでしょうか。
逆に、なぜ要らないと思ったのか知りたいですね。 それが分かれば、答えも考え易くなります。
>このrangeはどういう働きをしているのですか?
「このRange」とは何を指していますか? Rangeプロパティ? Rangeオブジェクト? まさか、Rangeと言う文字・・じゃないですよね?
ヘルプは、こうなっています。 ↓ ListRow オブジェクト メンバー Rangeプロパティ:上位リストの指定されたリストオブジェクトが 適用される範囲を表すRange オブジェクトを取得します。
(半平太) 2018/05/11(金) 20:04
↑
アクティブシート上のテーブルのデータ欄の位置行目
という意味で、セル範囲として表現されていません。
これを、セル範囲として取得したいなら、
そのオブジェクト(=ListRowsオブジェクト)のプロパティ(=Rangeプロパティ)から、
セル範囲を取得することになります。
(まっつわん) 2018/05/12(土) 08:28
ActiveSheet.ListObjects(1).ListRows(1)
アクティブシートの1つ目のテーブルの1行目
だけでは形のない情報だけのような感じでしょうか。
rangeによって初めて、excel上で形のあるセルを扱えるようになるというような…
(hiro) 2018/05/12(土) 14:14
(まっつわん) 2018/05/12(土) 14:20
>ActiveSheet.ListObjects(1).ListRows(1) >アクティブシートの1つ目のテーブルの1行目 >だけでは形のない情報だけのような感じでしょうか。 ↑ 実体だけあって、何をするか・何を持っているのか(両方合わせてメンバーと総称する)が 分からないモノです。(つまりオブジェクトですね)
そのオブジェクトのメンバーには何があるかは、ヘルプなどで調べる必要があります。
ただ・・調べる前の状態として、自分は何をやりたいのか、それがクリアになっている必要があります・・よね?
1行目に何をしたかったんですか? Selectですか?(例示された、ステートメントからはそう読めます)
「1行目のオブジェクトなんだから、Selectメソッドを持っているのは当然だよね」
そこで、こうやってみたんですね。 ActiveSheet.ListObjects(1).ListRows(1).Select
ところが、「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 なんてエラーを返して来やがった。
「何故、当たり前なメンバーが無いんだ! よくよく調べたら、 Rangeプロパティを噛ませないといけないと分かったんだけど納得いかないね」
私としては、そう言う返答が欲しかった。
おっしゃる通りです。 マイクロソフトの新米SEが手を抜いたんでしょうね。
俺は今日デートがあるんだ、Rangeプロパティを作ってあって、 それで、Rangeオブジェクトは取得できることにはしたんだから それを使って貰えばいいよね。 「おっといけねぇ、デートに遅れちゃう」ってなもんです。
(半平太) 2018/05/12(土) 17:27
たとえばRangeオブジェクトと、そのプロパティのValueプロパティと同じイメージでよいということですね。この二つは、セルに関する情報の集合体と、そのなかの一つの特徴や属性ですよね。
半平太様
このコードは書かれていたものであって、書こうとしたものではないんです。
なんだか熱く語ってくださったのにごめんなさい…。
説明不足でした。
(hiro) 2018/05/14(月) 23:18
>このコードは書かれていたものであって、書こうとしたものではないんです。
薄々感じていましたよ。なので、こう聞いたんです。Selectしたがる人なんて、そういないですから。 ↓ > ただ・・調べる前の状態として、自分は何をやりたいのか、それがクリアになっている必要があります・・よね? > 1行目に何をしたかったんですか? > Selectですか?(例示された、ステートメントからはそう読めます)
何をやりたいかが決まっていなければ、何かを調べようとすること自体考えにくいです。
なのに疑問が出て来た事も、私には不思議なんですけどねぇ。
・・その時は何があったんじゃないかと思いますが、整理して言葉に出来るほどじゃないんでしょうね。
(半平太) 2018/05/14(月) 23:33
確かに答えようと思えば答えられます。
すでに本来の疑問が解消されたので、その件に関する言及は控えただけです。
わかりにくい書き方でお手数おかけして、すみません。
(hiro) 2018/05/15(火) 09:31
>たとえばRangeオブジェクトと、そのプロパティのValueプロパティと >同じイメージでよいということですね。 まぁ、ほぼほぼそんな感じです。
ただ、ListRowsオブジェクトがほぼほぼRangeオブジェクトと同意なので、
わざわざ、Rangeと書かせなくてもいいのになと思う気持ちはわからなくもないですが、
そういう設計がされているので、利用者は従う以外ないのです。
クラスモジュールで自作して自分好みにListObjectsクラスと同様な機能を定義することも可能ですが、
自作する意味は薄いでしょう。
ただし、クラスモジュールの使い方の勉強のテーマとしては面白いとは思います。。。
(まっつわん) 2018/05/15(火) 09:45
再度ありがとうございます。
あのようなイメージで良いのですね。
ただ、あまり深くは考えないように気をつけます。
そのまま覚えていた方が良さげ、ですね。
(hiro) 2018/05/15(火) 14:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.