[[20040725224159]] 『名前定義のマクロ』(mana) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『名前定義のマクロ』(mana)

また教えていただけますか

Sub teigi()

Dim lastrow As Long, lastcol As Long

    lastrow = Range("A1").CurrentRegion.Rows.Count
    lastcol = Range("A1").CurrentRegion.Columns.Count

    Range(Cells(1, 1), Cells(lastrow, lastcol)).Select
    Selection.CreateNames Top:=True, Left:=False

    Range("A1").Select

End Sub

 上記マクロでリストボックス用の名前の範囲を定義しています
 範囲変更時に "現在の設定と置き換えますか"のダイアログボックス?が出て
 タイトル(列数)が多くなると "はい"を押し続けなければ成りません 
 そこで ボックス内に"すべてはい"ボタンを置くか 又は
 ボックス自体を表示せず 置き換えたいのですが 
 お知恵をお貸し下さい よろしくお願いいたします

 Excel2000 WindowsME


 こんな感じで
 どうでしょう?
(夏目雅子似)
 Sub teigi()

 Dim lastrow As Long, lastcol As Long

 lastrow = Range("A65536").End(xlUp).Row
 lastcol = Range("IV1").End(xlToLeft).Column

 Range(Cells(1, 1), Cells(lastrow, lastcol)).Select
 Selection.CreateNames Top:=True, Left:=False

 Range("A1").Select

 End Sub

 あのぅ、全然意味が違っている様でして^^;
 失礼しました。ごめんなさいm(__)m
(夏目雅子似)

 違っていたらごめんなさい。
 (jindon)

 Sub teigi() 
 Dim lastrow As Long, lastcol As Long 

    lastrow = Range("A1").CurrentRegion.Rows.Count
    lastcol = Range("A1").CurrentRegion.Columns.Count

    Range(Cells(1, 1), Cells(lastrow, lastcol)).Name="範囲名"
End Sub 

 おはようございます。
 全然見当違いだったら無視して下さい。
(夏目雅子似)
 Private Sub UserForm_Initialize()
 Dim lastrow As Long, lastcol As Long
 Dim MyColAd As String
 lastrow = Range("A65536").End(xlUp).Row
    With Range("IV1").End(xlToLeft)
        lastcol = .Column
        MyColAd = .Address
    End With

    With ListBox1
        .ColumnCount = lastcol
        .RowSource = "Sheet1!A2" & ":" & Mid(MyColAd, 2, 1) & lastrow
        .ColumnHeads = True
    End With
 End Sub
ちょっと、訂正m(__)m

夏目雅子似さん、jindonさん回答ありがとうございます
お返事がおそくなりました

  A      B        C        D     ・   ・   ・
 部品A	部品B  部品C  部品D
 A001	B001	C001	D001
 A002	B002	C002	D002
 C003	B003	C003	D003

 説明不足でお手間をお掛けしています
 リストボックスは入力規則の簡易リストボックスです
 上のようなリストで各列上端行名で範囲を定義しています

 リストにデータ追加後 マクロを実行すると現在の"部品A"の設定と置き換えますか
 現在の"部品B"の設定と置き換えますか・ ・ ・ と列数だけ"はい"ボタンを押す
 ことになります この確認をせずに マクロで置き換えたいのです  
 よろしくお願いいたします(mana)

 提示されたマクロは試しましたか?
 私のものはそのまま上書きすると思いますが?

 要するに、可変の範囲がご希望なのですよね?
 関数でも可能ですが、マクロであればChangeイベント
 にでも設定して、各列にデータが追加された段階で
 範囲指定を自動で変えたいということですか?

 データのあるシートのモジュールに貼り付けてください。
 (jindon)

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim i As Long, x As Long, c As Long
    c = Range("a1").End(xlToRight).Column
    If Target.Column > c Or Target.Row = 1 Then Exit Sub
        For i = 1 To c
            x = Cells(65536, i).End(xlUp).Row
            Range(Cells(2, i), Cells(x, i)).Name = Cells(1, i).Value
        Next
 End Sub

jindonさん こんばんわ

>要するに、可変の範囲がご希望なのですよね?

 そうではなくて そのまま上書き  が主眼でした

 初回ご案内のマクロでは"範囲名"の参照範囲がA1:D4になりましたが
 今回のマクロはスゴイです まさしく可変の範囲 参照範囲がピッタンコです
 ありがとうございました 勉強になりました

雅子さんへ

 初回ご案内のマクロは置き換えの確認が必要でした
 次のマクロはListBox1を作っていなかったので?うまく動きませんでした
 十分に検証できずに申し訳ありません またおしえてくださいね
 (mana)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.