プロが教える店舗&オフィスのセキュリティ対策術

例えば
Selection.Borders(xlbottom).LineStyle=xlDash

のようなプログラムの場合、
Borderプロパティの引数にはカッコを使い、
LineStyleプロパティの引数にはイコールを使いますけど
カッコを使う場合とイコールを使う場合は
どうやって区別したらよいのでしょうか?

A 回答 (3件)

こんにちは。



オブジェクトを取得するプロパティの場合()を付けて、その中にindexを指定する。
Workbooks(1)
Worksheets("Sheet1")
ActiveSheet.Shapes(1)
ActiveCell.Offset(1,1)
Range("A1").Borders(xlEdgeBottom)
など

取得したオブジェクトのプロパティに値を設定したり取得する場合=を使って
obj.Value=5
obj.Color=vbRed
Range("A1").Borders(xlEdgeBottom).LineStyle=xlDash
としたり、
x=obj.Value
y=obj.Name
z=Range("A1").Borders(xlEdgeBottom).LineStyle
とする。

少し乱暴かもしれませんが、コレクションからメンバーを取得するプロパティにはカッコが付き、オブジェクトに値を設定するプロパティの場合イコールが付く。
のような感じで区別すれば良いような気がします。
    • good
    • 0

Borders は、セルの4つの辺(Border)のコレクション(配列のようなもの)です。


Borders(xlbottom) で下辺のBorder(オブジェクト)選んだことになります。
LineStyle は、Border オブジェクトのプロパティで、Border(罫線)のスタイルを決めます。
objBorder.LineStyle = xlDash は、そのスタイルの設定をしていることになります。

カッコを使う場合とは、コレクション(配列)になっているかメソッドになっている場合に使うということでイイと思います。
今選んでいる要素がコレクションなのかメソッドなのか単なるプロパティなのかは、その部分を選んでF1キーを押してヘルプを参照して調べます。
    • good
    • 0
この回答へのお礼

みなさんありがとうございます。おかげで理解できました。ところで、もう一つ質問なのですが、
specialcellsメソッドの引数はカッコでくくらないとダメですけど、
引数をカッコでくくらないとダメなメソッドと
引数をカッコでくくる必要の無いメソッドの区別はどうすればよいのでしょうか?

例えば
Range("A1:E5").Specialcells(xlCellTypeBlanks).select
というように引数をカッコでくくらないと動かないのです。
ところが
ほかのメソッドは、引数をカッコでくくらないでも動きます。

お礼日時:2006/05/21 05:30

小生勉強十分でなく、やや生半可ですが、


xlbottomはエクセルシステムで定められた定数(組み込み定数)で、具体的には、「数」(2進数?)が定められていて、Bordersというオブジェクトの種類を指定していると思います。全ての種類は組み込み定数が定められているようで、5百以上(は確実)もあるようです(?)。配列の要素の指定のような感じ。
=xlDashは、(xlDashは同じく組み込み定数の一種ですが)、値をプロパティに与えて、それによって形状や体裁描画等のプログラムが実行され、結果的に種類を決めて(選択して)います。
ーーー
Sub test01()
Cells(1, 1) = xlDash
Cells(2, 1) = xlBottom
End Sub
を実行すると
-4115
-4107
となりました。
参考までに
Sub test01()
Selection.Borders(-4107).LineStyle = -4115
End Sub
でも同じになりました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!