dポイントプレゼントキャンペーン実施中!

EXCELのVBAで拡張するDATEBASE範囲を、Datebaseなどという範囲の名前で指定できないでしょうか?
拡張していくものをソートしたいんですが。

A 回答 (3件)

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

の部分はご自分でアレンジしてください。

てなことですか?
    • good
    • 0

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の範囲指定が影響されることはないはずです。

質問の趣旨がよくわかりません。

この回答への補足

作業を全部書きます。
EXCELでいうリスト範囲の下にデーターを追加していきます。
1行1行追加していくたびに、ソートをするんですが、一度、リスト範囲がたとえばA1:C5だとすると、
次が、A1:C6で、ソート。次はA1:C7です。
マクロではなく普通に並び替えをする時は、リスト範囲の全部でソートされます。
そのような感じで、マクロでもリスト範囲をPRINT_AREAのような、自動的につく名前などないでしょうか?

補足日時:2004/11/06 10:53
    • good
    • 0

はずしていたらごめんなさい。



データ範囲に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")

です。

この回答への補足

こんにちは、回答ありがとうございます。
えーーそれで、マクロであるデーターをそのデーターベース範囲の下に追加していきます。
で、データベース範囲が拡張する中、ソートをしたり、
データベース範囲外にコピーをしたりしますので、
それはどうすればいいでしょうか?

補足日時:2004/11/05 12:55
    • good
    • 0
この回答へのお礼

ありがとうございます。
一度試してみます。

お礼日時:2004/11/06 20:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!