質問: エクセル vbaで範囲に名前を定義する sub 範囲import設定() sheets("format").select range("a1").select selection.currentregion.select activeworkbook.names.add name:="import", referstor1c1:="=format!r1c1:r26c7" end sub 「マクロの記録」でctrl + * で全データ範囲を選択して"import"という名前を定義したところ 上のようなコードになりました。全データ範囲は毎回違うのですが、ごらんのようにセル番号 で指定されてしまいます。そのつど異なる全データ範囲に名前を定義するにはどうすればいいのでしょうか。 よろしくお願いします。
回答: 範囲を指定して記録マクロを確認してみましょう。 a1セルからe10セルまでの範囲を指定したとすると range("a1:e10").select activeworkbook.names.add name:="input", referstor1c1:="=format!r1c1:r10c5" とかなりませんか。 1行目は分かりますよね。a1:e10を選択しています。 2行目の後ろのほう、"=sheet1!r1c1:r10c5" はrc形式でのセルの指定です。 a1:e10と同じ意味を持っています。 ・・・ってか、都度範囲を指定して名前を付けるのであれば、 普通に範囲を指定して範囲名を手動でつければ良い と思います。 どこかにデータの範囲が記入されているならそのセルを参照して・・・と言うことはできますけどね。