Excel VBA 質問スレ Part64

■ このスレッドは過去ログ倉庫に格納されています
2019/12/02(月) 23:43:54.18ID:ngrqyTy20
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part63
https://mevius.5ch.net/test/read.cgi/tech/1568630099/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ドコグロ MM1d-w5bQ)
垢版 |
2019/12/03(火) 00:17:07.29ID:C8UnG3E4M
>>1
MSgbox "乙"
2019/12/03(火) 06:50:45.90ID:EPisquqd0
北海道のグラサンのハゲはここにこないのー?
4デフォルトの名無しさん (ササクッテロラ Sp79-SL5O)
垢版 |
2019/12/03(火) 07:23:30.55ID:0rVoayhJp
前レスナンバー999

なんとなくわかるけど
a = msgbox 文字列

これならmsgboxが戻り値とわかるが
cells.border()

これはborderの戻り値が〜じゃなくてcellsの戻り値がボーダーに入ってんじゃないの?
関係図を教えて
2019/12/03(火) 09:16:21.04ID:9IKqMgsD0
>>4
じゃないの
a = cells()
a.border()
って事なの
2019/12/03(火) 10:50:38.75ID:eFWYyMY/0
セルのボーダーのラインスタイルの戻り値にxlInsideHorizontalを入れようとしている。
2019/12/03(火) 16:53:00.11ID:HVSFa5J10
>>4
Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
↑色々省略されている。
↓なるべく略さずに書き直してみる。
Let Excel.Application.ActiveSheet.Cells(i,
j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
先頭の「Let」はステートメント(命令)で、「この行のコードの右辺の値を左辺に
代入してね」という命令になっている。
また、このコード例の場合、ピリオドの右に続く単語はすべて(たまたま)「プロパ
ティ」になっている。
だが、「ApplicationプロパティのActiveSheetプロパティ」だとか「Cellsプロパ
ティのBordersプロパティ」だとかいう語は成り立たない。
ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラス
のインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのイ
ンスタンス(WorkSheetオブジェクト)を参照(Get)
 →WorkSheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス
(Rangeオブジェクト)を参照(Get)
  (Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラ
スの別のインスタンス=Rangeオブジェクトを参照)
  →RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタン
ス(Bordersオブジェクト)を参照(Get)
   (Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指
定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
   →BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入
(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指
定して、LineStyleプロパティプロシージャを実行してね)。
2019/12/03(火) 16:57:39.86ID:eFWYyMY/0
>>7
多分、初心者は何言ってるかサッパリ分からんだろうなw
2019/12/03(火) 18:21:24.00ID:0X+RZN9Ra
>>8
そう・・・
>>4
「Cells.Borders」は
1.アクティブなWorksheetオブジェクトのCellsプロパティを参照(Get)
 →戻り値はRangeオブジェクト
2.RangeオブジェクトのBorders(Borderではない)プロパティを参照(Get)
 →戻り値はBordersオブジェクト
という表現。
Borders()の括弧の中にxlBordersIndex定数を指定した場合、
戻り値はBorderオブジェクトになる。

「いきなりプロパティからはじまるのはおかしい」と思うかもしれないが、それは>>7に書いたとおり色々と省略しているから。
2019/12/03(火) 18:47:20.18ID:0X+RZN9Ra
>>7
って、なんかめちゃくちゃ改行入っとる・・・

書き直し。
Let Excel.Application.ActiveSheet.Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal

ExcelオブジェクトライブラリのApplicationプロパティにより、Applicationクラスのインスタンス(Applicationオブジェクト)を参照(Get)
→ApplicationオブジェクトのActiveSheetプロパティにより、Worksheetクラスのインスタンス(Worksheetオブジェクト)を参照(Get)
 →WorksheetオブジェクトのCellsプロパティにより、Rangeクラスのインスタンス(Rangeオブジェクト)を参照(Get)
  (Rangeオブジェクトのデフォルトプロパティの引数にi・jを指定し、Rangeクラスの別のインスタンス=Rangeオブジェクトを参照)
  →RangeオブジェクトのBordersプロパティにより、Bordersクラスのインスタンス(Bordersオブジェクト)を参照(Get)
   (Bordersオブジェクトのデフォルトプロパティの引数にxlDiagonalDownを指定し、Borderクラスのインスタンス=Borderオブジェクトを参照)
   →BorderオブジェクトのLineStyleプロパティにxlInsideHorizontalを代入(Let)してね(=LineStyleプロパティプロシージャの引数にxlInsideHorizontalを指定して、LineStyleプロパティプロシージャを実行してね)。
11デフォルトの名無しさん (ササクッテロラ Sp79-SL5O)
垢版 |
2019/12/03(火) 19:15:56.54ID:0rVoayhJp
>>10
インスタンスねぇ…
プログラム1ヶ月の人にわかると思う?荒らしか?
2019/12/03(火) 20:14:07.74ID:GoxUwlnv0
メソッドの引数は普通だけど、プロパティの引数って特別な呼び方ある?
よく考えたら他の言語にプロパティの引数って見たことないような
2019/12/03(火) 21:25:51.83ID:qY14OTyg0
>>11
それがわからんと理解できないよ
そもそも一般には聞き慣れないと言うだけでそんなに難しい概念じゃないし
2019/12/03(火) 22:00:54.56ID:Af3RUiJcx
>>12
インデクサの一種だろ
2019/12/03(火) 23:06:13.37ID:h3dlk8FC0
インスタンス?
VB.Netとかだと最初の1日目か2日目に学習することだとか言ったらまた荒れるんだろうなぁ
2019/12/03(火) 23:11:52.57ID:Af3RUiJcx
インスタンスとクラスが分からないとお話にならんわな
式で参照取得しているものが何なのかまるで分かってないってことだから
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況