• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBAで範囲に名前を定義する)

エクセル VBAで範囲に名前を定義する

このQ&Aのポイント
  • エクセル VBAを使用して、範囲に名前を定義する方法について教えてください。
  • 特定の範囲に名前を付ける方法が知りたいです。
  • マクロの記録を使用して、セルの範囲に名前を付けたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 単に名前定義だけの場合は Sub 範囲import設定() Worksheets("Format").Range("A1").CurrentRegion.Name = "import" End Sub でOKだと思います。 >全データ範囲は毎回違うのですが・・・ というコトは一旦「import」という名前定義を削除して新たに名前定義し直す必要があると思います。 そこで↓は「import」という名前定義を削除するコードです。 Sub 削除() ActiveWorkbook.Names("import").Delete End Sub ※ 新しい範囲を名前定義する場合は、一旦「削除」のマクロを実行して 「範囲import設定」のマクロを実行してください。m(_ _)m

snorioo
質問者

お礼

ありがとうございました。 コピペでやらせてもらいました。うまく行きました。

その他の回答 (2)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

こんなかんじで。 何をしているかは、コメント参照願います。 ■VBAコード Sub 範囲import設定() '変数を宣言 Dim myStr As String 'A1セル基点Ctrl+*のセル範囲のアドレスをR1C1形式で取得 myStr = Range("A1").CurrentRegion.Address(External:=True, ReferenceStyle:=xlR1C1) '"="を結合し、"[ブック名]"を削除 myStr = "=" & Right(myStr, Len(myStr) - InStr(1, myStr, "]")) '名前の定義 ActiveWorkbook.Names.Add Name:="import", RefersToR1C1:=myStr End Sub

snorioo
質問者

お礼

ありがとうございました。 今回の問題に関してはtom04さんの方法がもっとも簡便でしたのでそちらを使わせてもらいました。 アドレスの取得方法など参考になりました。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

範囲を指定して記録マクロを確認してみましょう。 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と同じ意味を持っています。 ・・・ってか、都度範囲を指定して名前を付けるのであれば、    普通に範囲を指定して範囲名を手動でつければ良い と思います。 どこかにデータの範囲が記入されているならそのセルを参照して・・・と言うことはできますけどね。

snorioo
質問者

補足

ありがとうございます。 おっしゃるとおりなのですが、パソコンに詳しくない人にも使えるように自動で名前をつけられるようにしたいのです。

関連するQ&A