[[20040819140215]] 『オートフィルターで選択されたセルの指定方法』(トッピ) ページの最後に飛ぶ

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

 

『オートフィルターで選択されたセルの指定方法』(トッピ)
 オートフィルターをかけて選択された最上行の特定セル値を別のセルにコピー
 する方法を、マクロで組みたいと考えています。

 (例)下記で、4行目以降のデータに対して、仕入先の▼でbbを選択して、
 マクロを起動したらセルB1にbbと表示させたい。

 どなたか、初心者にわかり易く教えていただきたく、よろしくお願いいたします。

      A          B          C
 1 仕入先  _____
 2
 3
 4 商品名▼  仕入先▼  価格▼
 5 AAA     aa         100
 6 BBB         aa         200
 7 AAA         bb          50
 ・
 ・

 オートフィルターの実行では、
 マクロのイベントが発生しないので厳しいかと思います。

 なお、オートフィルタの抽出に使用したキーワードであれば、
 Filerオブジェクトのプロパティで取得可能です。

 逆に、Changeイベントで B1 の値が変化したら
 マクロによりオートフィルターを掛けるとかなら実現できませんか?

 >初心者
 初心者といっても幅がありますし、何が初心者なのかも分かりませんので、
 回答者の立場としては、書いてあってもあまり意味がないように思ってます。

  (INA) 

INAさん
早速のご対応ありがとうございます。

 が、おっしゃてる内容が理解できるレベルにありません。(^_^;)
 >Filerオブジェクトの・・・?
 >Changeイベント・・・・・?

 (理解度はマクロの自動登録と簡単なデバックができる程度です)

 ただ、逆提案いただきました、B1の値を変化させてマクロでオートフィルターを
 掛けることができるのなら、それでも結構ですので、お手数ですが"具体的に"ご教示
 頂ければありがたいです。なお、データはこれもマクロで別シートからのコピーで
 貼り付けられたもので、オートフィルターの設定まで行っています。(トッピ)


 どうぞ。

 標準モジュールではなく、sheetモジュールに記載してください。

 Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address <> Range("B1").Address Then Exit Sub

    If Target.Value = "" Then
        ActiveSheet.AutoFilterMode = False
        Exit Sub
    End If

    Range("A4").CurrentRegion.AutoFilter Field:=2, Criteria1:=Range("B1").Value

 End Sub

  (INA)

 INAさん
 ありがとうございました。期待どうりに動作してくれました。
 教えていただいた内容を解読してさらに勉強させていただきます。
 ところで、追加質問で申訳ありませんが、標準モジュールとSheetのモジュールで
 貼り付けるとではどのように異なるのでしょうか? 
(トッピ)


 sheetモジュール、thisworkbookモジュールでは、
 イベントによりマクロを実行することが出来ます。

 「イベント一覧」
http://www.geocities.jp/vbaxl/event/000.html

  (INA)

コメント返信:

[ 一覧(最新更新順) ]


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