- ベストアンサー
Excel VBA Cells 絶対参照 書き方
Excel VBAにてお尋ねいたします。 Excel VBAにてCellsを使用してセル範囲を指定させていただく際に、絶対参照($A$1:$E$10など)を使用する場合はどのように記述すればよろしいでしょうか? Cellsを使用するのは、セル範囲が毎回異なるため、範囲指定に変数を使用しているためです。 相対参照でしたら、Range(Cells(1,1),Cells(Rows<行番号の変数>,Cols<列番号の変数>))といった記述かと思いますが、絶対参照の場合はどのように記述すればよろしいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
具体敵ににに何をしたいのか判らないのですが、セル位置を変数で指定したいのなら、 Address = "A1:E10" Range(Address) でいいのでは。 Range(Address).Select Range(Address).Interior.Color = vbYellow の様に使います。 もし、変数でなく完全固定なら [A1:E10].Select [A1:E10].Interior.Color = vbYellow という書き方もあります。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
関数の考えに毒されていると思う。質問のような考えが生まれる余地はない。 VBAでCells()で指定するもには、関数の関数式の式の複写などの際の式の行、列の変化はないし、もし別ケースで、同じことをするなら、VBAプログラマの責任で、例えばFor Nextなどを使ってセル番地の指定を変化させて実行しないとならない。 Formulaを設定する場合は、 https://www.moug.net/tech/exvba/0050098.html セルに数式を入力/取得する(Formula/FormulaR1C1プロパティ) を読むこと。 その他 https://www.vba-ie.net/operation/cellsformula.php ◾Formulaプロパティを利用したセルに数式を入力するサンプルコード ーー シートの、既設定の関数式のセルのアドレス指定について、絶対・相対参照をいじくるのは http://kouten0430.hatenablog.com/entry/2017/08/20/130625 数式を絶対参照にする など勉強すること。 ーー https://docs.microsoft.com/en-us/office/vba/api/excel.range.address AddressのTrueFalseなど Range.Address property ーー やはり短期の、我流のVBA学習のために、こういう質問になるように思う。 どこかで、VBAの専門の中級以上のことを教える、スクールで教えてもらう機会が必要かと思う。
- kon555
- ベストアンサー率51% (1842/3559)
「相対参照と絶対参照」という考え方は、数式が入力された『セル』のコピー時の挙動を規定するものなので、VBAのコードにおいては根本的に存在しません。 あえて言えば、ブック内でのセルのコピーや移動どれだけ行おうと指定セルの位置等が変化しないという点において、VBAでのセル指定はほぼすべて絶対参照です。 既にセルに記述された数式の相対/絶対の切り替えであればConvertFormulaというメソッドもありますが、書かれている内容からするとそうではないですよね。 貴方の言う"絶対参照"とはどういう挙動の事で、それを何故VBAで実現したいのかを一度整理してみてはいかがでしょうか。それを質問された方が、的確な回答やアドバイス等がつくと思います。
- kkkkkm
- ベストアンサー率66% (1719/2589)
A1にB1の値を参照してといった場合 相対参照は Cells(1, 1).Value = Cells(1, 1).Offset(0, 1).Value 絶対参照は Cells(1, 1).Value = Cells(1, 2).Value だと思いますが…。