- 締切済み
VBAで、拡張するDatebase範囲を名前で指定
EXCELのVBAで拡張するDATEBASE範囲を、Datebaseなどという範囲の名前で指定できないでしょうか? 拡張していくものをソートしたいんですが。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- jindon
- ベストアンサー率43% (50/116)
jindonです。 Private Sub Worksheet_Change(ByVal Target As Range) With ActiveSheet.Range("a1").CurrentRegion .Name = "Database" .Sort key1:=Range("a1"), order1:=xlAscending End With End Sub こういうことですか? 使用方法 対象シート(リストのあるシート)のシートタブを右クリックして コードの表示を選択 -> 右側の空白部分にコードを貼り付ける -> X をクリックしてエクセル画面に戻る。 どのセルでも良いので、Wクリックしてエンターしてください。 Databaseと名前を指定した範囲が追加されているはずです。 確認方法 数式バーの左側のドロップダウンリストにDatabaseがあるはずですので、それを選択すると指定した範囲を選択します。 .Sort key1:=Range("a1"), order1:=xlAscending の部分はご自分でアレンジしてください。 てなことですか?
- jindon
- ベストアンサー率43% (50/116)
jindonです。 Private Sub Worksheet_Change(ByVal Target As Range) With ActiveSheet .Range("a1").CurrentRegion.Name = "Database" End With End Sub に変更してください。(Change Eventの方が良いでしょう) >データベース範囲が拡張する中、ソートをしたり Sheets("Data").Range("Database").Sort kye1:=...., order1:=..... 等でできます。 >データベース範囲外にコピーをしたりします Databaseの範囲外であれば、Databaseの範囲指定が影響されることはないはずです。 質問の趣旨がよくわかりません。
- jindon
- ベストアンサー率43% (50/116)
はずしていたらごめんなさい。 データ範囲にDatabaseと名前を付けるのであれば Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveSheet .Range("a1").CurrentRegion.Name = "Database" End With End Sub シートが変更されると、名前を上書きします。 またこの名前範囲を参照する場合は(データシート名をDataと仮定します) Sheets("Data").Range("Database") です。
お礼
ありがとうございます。 一度試してみます。
補足
こんにちは、回答ありがとうございます。 えーーそれで、マクロであるデーターをそのデーターベース範囲の下に追加していきます。 で、データベース範囲が拡張する中、ソートをしたり、 データベース範囲外にコピーをしたりしますので、 それはどうすればいいでしょうか?
補足
作業を全部書きます。 EXCELでいうリスト範囲の下にデーターを追加していきます。 1行1行追加していくたびに、ソートをするんですが、一度、リスト範囲がたとえばA1:C5だとすると、 次が、A1:C6で、ソート。次はA1:C7です。 マクロではなく普通に並び替えをする時は、リスト範囲の全部でソートされます。 そのような感じで、マクロでもリスト範囲をPRINT_AREAのような、自動的につく名前などないでしょうか?