アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL2000を使っています。

sheet1にある一覧表のデータをsheet2のコンボボックスの入力範囲として使っています。
コンボボックスですが、実際にはリストボックスとしてしか利用していません。
現在は、sheet1の一覧表が更新されるたびに、手作業で入力範囲を修正していましたが、これをマクロで処理する方法はないでしょうか?

例えば、sheet2がアクティブになった時にマクロが自動実行し、入力範囲が変更されれば完璧です。

どなたか、アドバイスお願い致します。

A 回答 (3件)

Sheet2のComboBox1のMouseDownイベントプロセジュアとして


Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
d = Worksheets("sheet1").Range("A1").CurrentRegion.Rows.Count
f = Trim(Str(d))
Sheet2.ComboBox1.ListFillRange = "sheet1!a1:a" & f
End Sub
として見ました。
Sheet1のA列の最下行を増やしたり減らしたりすると、その後にコンボのリストがクリックするごとに増減していることを確認しました。
d = Worksheets("sheet1").Range("A1").・・のA1は
最初行に合わせて変えること。
    • good
    • 0
この回答へのお礼

本当です!できました!ありがとうございました。
自分には絶対書けません・・・。もっと勉強します。本当にありがとうございました。

お礼日時:2004/04/28 11:05

リストの範囲が最下行までと決まっている場合次のイベントプロシージャでいけると思われます。

ただ、リスト範囲の列数と最上行数は指定してください。


Private Sub Worksheet_Activate()
Dim mycul As Integer '<-リスト範囲の列数
Dim myrow1 As Integer '<-リスト範囲の最上行数
Dim myrow2 As Integer '<-リスト範囲の最下行数

mycul = 1 '<-リスト範囲の列数を指定(1はA列,2はB列...)
myrow1 = 2 '<-リスト範囲の最上行を指定
myrow2 = Range(Sheets("Sheet1").Cells(Rows.Count, mycul).End(xlUp).Address).Row
ComboBox1.ListFillRange = _
"Sheet1!" & Range(Cells(myrow1, mycul), Cells(myrow2, mycul)).Address
End Sub
    • good
    • 0
この回答へのお礼

2度も回答いただき、本当にありがとうございました。NO2の方と同様にこちらでもうまく動きました。シートに2つコンボボックスがありますので、1つはNO2の方、もう1つをこの書き方で利用させていただきたいと思っております。まだまだ勉強不足で、コメントを書いていただいたのは、本当に助かりました。心よりお礼申し上げます。ありがとうございました。

お礼日時:2004/04/28 11:13

デザインモードでコンボボックスのプロパティウインドウを表示して、


ListFillRange
の値をセル参照にすることが可能です。例えばSheet1のセルA1からA5にリストがある場合、
ListFillRangeの値をSheet1!$A$1:$A$5
とします。マクロを組む必要はありません。


> sheet2がアクティブになった時にマクロが自動実行し、入力範囲が変更されれば完璧です

であれば、Sheet2のActivateイベントプロシージャを以下のように記述します。なお、この例ではコンボボックスの名前をComboBox1とします。

Private Sub Worksheet_Activate()
ComboBox1.ListFillRange = "Sheet1!$A$1:$A$5"
End Sub

EXCEL2000で動作確認

この回答への補足

すみません。質問を補足してもよろしいでしょうか?sheet1のリスト範囲が、表が更新される毎に変わってしまうのです。それでも、この方法で出来るのでしょうか?何卒宜しくお願い致します。

補足日時:2004/04/27 17:35
    • good
    • 0
この回答へのお礼

回答の補足に入力してしまいました。お礼のところにするべきでした。申し訳ありません。
再度、入力します。

すみません。質問を補足してもよろしいでしょうか?sheet1のリスト範囲が、表が更新される毎に変わってしまうのです。それでも、この方法で出来るのでしょうか?何卒宜しくお願い致します。

お礼日時:2004/04/27 18:05

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