アプリ版:「スタンプのみでお礼する」機能のリリースについて

Sub...
y=Worksheets("sheet2").Cells(25,13).Value
Worksheets("sheet1").Range("B13").Value=z

これの意味を階層構造を含めて答えよ。

自分はzの値をyに代入するという意味だと思うのですが、それではだめで階層構造を含めてかけと言われるとわかりません。
どのような意味があるのでしょうか。
また、RangeとCellsの違いを教えてください。
お願いします!

A 回答 (1件)

ExcelVBAのオブジェクトの階層構造は、最上位が、Excelを表す「Applicationオブジェクト」で、その下からWorkbookオブジェクト→Worksheetオブジェクト・・・と続いています。



y = Worksheets("Sheet2").Cells(25, 13).Value は、
Worksheetオブジェクトの中の"Sheet2"というWorksheetオブジェクトのCellというオブジェクトの中の25行13列目のセルの値を 変数y に代入するということです。

Worksheets("Sheet1").Range("B13").Value = z は、
変数z に代入されている値を、Worksheetオブジェクトの中の"Sheet1"という名前のWorksheetのRangelというオブジェクトの中のB13という名前のRangeに入れるということです。

ご提示のコードだけでは 変数y と 変数z の関係はわかりません。

> また、RangeとCellsの違いを

Rangeはある範囲のセルを指定できます。(Rangeは”範囲”ですから)
Range("B13").Value = z ではRangeで1つのセルだけを指定しましたが、仮にA1からB3の範囲のセル全部に入力するなら、
Range("A1:B3").Value=z とすることができます。

Rangeの他に、1つのセルを指定するのにCells(行、列)という指定の仕方もあります。
Cells(1,1)とすればセルA1をさします。
Cells(3,2)とすればセルB3をさします。
Cells(行、列)で複数セル範囲は指定できません。Range("A1:B3")をどうしてもCellsを使ってあらわしたければ、Range(Cells(1,1),Cells(3,2))といった書き方をしなければなりません。
    • good
    • 0

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