• 締切済み

VBAセル番地が移動したとき更新するには

前回の質問の延長になります。 https://okwave.jp/qa/q10219443.html#answers Sub Step1_copy() Worksheets("RAsheet").Range("D8").Value = Worksheets("RAsheet").Range("X9").Value End Sub 入力フォームの入力欄にINDEX関数で抽出した値を代入して入力作業を簡略しようとしています。 抽出セルX9を番地ではなく名前で宣言して格納し、代入などでセル番地を指定していた箇所に名前を入れてセル番地が移動したときに一括で反映させるようにする方法はありますでしょうか。 詳しい方いましたらご教授ください。

みんなの回答

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> >Worksheets("RAsheet").Range("D8").Value = > >Worksheets("RAsheet").Range("名前").Value > > 上記のように参照元の値のセル番地を名前で定義し、毎回セル番地を書かずに名前で入力したいです。 すでに「名前の定義で名前を付けたセルX9をVBAで参照する」と説明してますが分かりませんか? 数式タブの中に「名前の定義」があるのでセルX9を選択した状態で名前設定したらセルX9をどこに移動しても上記のコードでVBAは一切触ることはありません。前回もそうでしたが回答を実際に実行してから補足を考えてください。 > 参照元のセルが移動した時に最初に定義した箇所のセル番地を変えるだけで他のコードをいじる手間を省きたい VBAのコードを一か所変更したらというのであれば Dim mRng As Range Set mRng = Worksheets("RAsheet").Range("X9") Worksheets("RAsheet").Range("D8").Value = mRng.Value 上記の方法はどちらもよくやる方法です。前者の方がVBA変更しなくていいので楽なのではありませんか。 セルX9が何故移動するのかは分かりませんが、移動の理由はコードとは関係がないので移動(変更ではありません)するという前提で回答しています。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

> 抽出セルX9を番地ではなく名前で宣言して格納 名前の定義で名前を付けたセルX9をVBAで参照するとかの意味でしたら 名前という名前を付けた場合 Worksheets("RAsheet").Range("D8").Value = Worksheets("RAsheet").Range("名前").Value > 一括で反映させる この意味がわかりません。何を一括で反映させるのか。

nadeko666
質問者

補足

回答頂きありがとうございます。 >名前の定義で名前を付けたセルX9をVBAで参照するとか>の意味でしたら >名前という名前を付けた場合 >Worksheets("RAsheet").Range("D8").Value = >Worksheets("RAsheet").Range("名前").Value 上記のように参照元の値のセル番地を名前で定義し、毎回セル番地を書かずに名前で入力したいです。 >この意味がわかりません。何を一括で反映させるのか。 説明不足で申し訳ないです。 最初にセル番地を名前で定義(セット?)し、セル参照時にセル番地の代わりに定義した名前にすることで、参照元のセルが移動した時に最初に定義した箇所のセル番地を変えるだけで他のコードをいじる手間を省きたいです。 質問の意図が分かりにくい場合は、お知らせください。 よろしくお願いいたします。

関連するQ&A