[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『名前定義のマクロ』(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
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
>要するに、可変の範囲がご希望なのですよね?
そうではなくて そのまま上書き が主眼でした
初回ご案内のマクロでは"範囲名"の参照範囲がA1:D4になりましたが 今回のマクロはスゴイです まさしく可変の範囲 参照範囲がピッタンコです ありがとうございました 勉強になりました
雅子さんへ
初回ご案内のマクロは置き換えの確認が必要でした 次のマクロはListBox1を作っていなかったので?うまく動きませんでした 十分に検証できずに申し訳ありません またおしえてくださいね (mana)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.