すみません。質問させてください。
オートフィルタで抽出すると、青い三角になりますが、
それが見づらいので、抽出している行がすぐわかるようにしたいです。
(ファイルを縮小表示しているもので・・・)
オートフィルタをかけると、かけている(三角がある)セルだけ色が変わる・・
など、いい案があれば教えて下さい!

宜しくお願い致します。

A 回答 (1件)

イベントマクロを使えば可能ですが...


http://oshiete1.goo.ne.jp/qa2305999.html
△ここを参考にしたり、または以下。

AutoFilterの色づけしたい対象シートがSheet1だとします。
それとは別に作業用シートを準備します。
その作業用シート任意の1セルに数式を設定します。(たとえばA1)
=SUBTOTAL(3,Sheet1!A:A)
あとは、その作業用シートのシートモジュールのCalculateイベントを使います。
(作業用シートのシートタブ右クリック[コードの表示]で表示されるモジュールに
 以下コピーペースト)

'SheetModule
Option Explicit

Private Sub Worksheet_Calculate()
  Static r As Range
  Dim f  As Filter
  Dim i  As Long

  On Error GoTo errHndler
  With Sheets("sheet1") '実際の対象シート名に変更が必要
    If .AutoFilterMode Then
      With .AutoFilter
        If r Is Nothing Then Set r = .Range.Rows(1)
        For Each f In .Filters
          i = i + 1
          '33が、識別用 ColorIndex。任意で。
          r.Cells(i).Interior.ColorIndex = IIf(f.On, 33, xlNone)
        Next f
      End With
    Else
      If Not r Is Nothing Then r.Interior.ColorIndex = xlNone
      Set r = Nothing
    End If
  End With
errHndler:
  If Err.Number <> 0 Then MsgBox Err.Number & ":" & Err.Description
End Sub
    • good
    • 0
この回答へのお礼

有難うございます!!早速やってみます!!
Calculate モジュールを使うんですね・・・
またご報告したいと思います!!!

お礼日時:2009/05/12 17:10

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qオートフィルタを使わず条件抽出

オートフィルタを使わず条件抽出をしたいのですが数式がわかりません。(Accessを使えばよいのですが会社からNGがでたため)

具体的には、Sheet1に参加日、参加時間、受付整理番号、氏名、フリガナ、そのほか住所などの申し込みデータがあります。
そこから、毎日、その日、その時間分の参加者データを綺麗なリストとして印刷したいため、1つの参加日・参加時間の氏名・フリガナだけを抽出した別シートSheet2で作成したいのです。

別シートに、A1に参加日、B1に参加時間を入力すると(実際は入力規制のリストから選ぶ)、
整理番号1番から縦に30番まであるセルC列の右D列に、氏名を表示させるようにしたいのです

以下、Sheet2の項目です

A1    B1   C     D  F
参加日 参加時間 整理番号 氏名 フリガナ
          1   数式 数式
          2   数式 数式
          3   数式 数式

A1でかつ、B2でかつ、C2に絞った結果をSheet1から抽出することは可能でしょうか

オートフィルタを使わず条件抽出をしたいのですが数式がわかりません。(Accessを使えばよいのですが会社からNGがでたため)

具体的には、Sheet1に参加日、参加時間、受付整理番号、氏名、フリガナ、そのほか住所などの申し込みデータがあります。
そこから、毎日、その日、その時間分の参加者データを綺麗なリストとして印刷したいため、1つの参加日・参加時間の氏名・フリガナだけを抽出した別シートSheet2で作成したいのです。

別シートに、A1に参加日、B1に参加時間を入力すると(実際は入力規制のリ...続きを読む

Aベストアンサー

Sheet1に作業列追加すると便利と思います
例えばA列に一列挿入して
=(TEXT(参加日+参加時間,"yyyymmddhhmm")&整理番号
で下までコピィしておきます。目障りであれば非表示にします。

別シート
  A     B    C    D
1 2008/8/1 10:00 整理番号
2             1
3             2
4             3
D2には=VLOOKUP(TEXT($A$1+$B$1,"yyyymmddhhmm")&C2,Sheet1!$A:$F,4,FALSE)
で下フィルします。
詳しくは VLOOKP関数のHelp参照してください。
エラー処理は別途考えてください。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qオートフィルタの抽出が途中で途切れる

エルセルにてデータベースをつくり、プルダウンリストより抽出したい項目を選択すると、一定の行までは抽出され左側の行番号が青くなるのですが、途中までしか抽出ができません。空欄があると出来ないという回答もあるようですが、今まで月ごとに1行空欄をいれて作成していて抽出にも問題ありませんでした。
特に設定等もかえていませんが、途中から抽出されなくなり、抽出部分のみ行番号が青くなり、それ以降は普通にデータが表示されています。通常入力済みの全データを検索対象にして、オートフィルタにて抽出すると抽出データ以降は空欄になりますが、上記の様な状態になってしまいます。データを継ぎ足していくと自動で範囲は追加されていきますよね?長文にて分かりにくくて申し訳有りませんが、誰かお分かりの方がおりましたら教えて頂ければと思います。
よろしくお願い致します。

Aベストアンサー

関連あるように思いますので
データベースのリスト
http://www.kenzo30.com/ex_kisosyo/ex_ks_syokyu7.htm
を紹介しておきます。俗語の、並べたデータという意味のリストや
入力規則のリストとは違う、エクセルの概念です。
また2003からのリスト、2007でのリストとも違います。
エクセルのデータベース関係の操作・機能は上記WEBの
>リストを他のデータから分離するには、1つ以上の空白列や空白行を入れる。
の逆と関連します。範囲指定しないと、空白行の前のリスト部分までで処理が終る恐れを常に意識しておく必要があると思います。出来るだけ空白行を入れない。

abc
123
3224
13224
15224

122
835
A1を指定して並べ替えをやるとA1:C5でやってしまう。
A7:C8は入ってない。A1:C8を範囲指定すれば別。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qオートフィルタの抽出結果をマクロで表示するには?

A 1000 
D 200
A 500
A 1000
B 2000

上表をオートフィルタでA及び1000で絞ると左下に『4レコードで2個です。』と抽出個数が表示されると思いますが、その個数(2個)をマクロを使って表示させるにはどうすればいいでしょうか?
マクロの記録でオートフィルタをかけるところまではできるのですが、個数表示で壁にぶち当たっています。

ちなみに1000を検索させて個数を出すという方法もありますが、2行目のデータが他の行にもあるため、データを検索させて個数を導くマクロは作られないので、オートフィルタからのマクロを作成しています。
マクロ初心者のため、分かる方いらっしゃいましたらご教授をお願いします。

Aベストアンサー

こんばんは。

>2行目のデータが他の行にもあるため、データを検索させて個数を導くマクロは作られないので、
2行目のデータというのは、2列目のデータという意味だと思いますが、検索といっても、ループ型とか、関数型になるのですが、考えるよりもややこしいです。

以下は、あくまでも、AutoFilter の範囲のみであって、AutoFilter が出ていない限りは、値が出てきません。
Columns(2) は、Columns(1) でも構わないのですが、その代わり、Subtotal の第1引数を、3にしました。

 If ActiveSheet.AutoFilterMode Then
   MsgBox WorksheetFunction.Subtotal(3, Me.AutoFilter.Range.Columns(2)) - 1
 End If

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qオートフィルタで抽出後、マクロでコピー&貼り付け

初めまして、エクセル初心者です。
以下のマクロを、自動記録でやろうとすると、うまくいきません。
類似質問を検索してみたものの、初心者のためアレンジがきかず・・・
他力本願な質問になり、大変申し訳ないのですが、
どなたかお手すきのときに教えていただけると、
とてもうれしいです。

【やりたいこと】

(1)Book1のファイルで、
 オートフィルタでデータを抽出後、
 抽出したデータのBからDのセルをコピーし、
 別ファイル、Book2のファイルの、
 *BからDに「値」で貼り付けたい。

 *Book2のBからDは、
  上段までデータが入力してある状態で、
  そのすぐ下段(空白)のBからDへ貼り付けたい。

(2)Book1(コピー元ファイル)のEのセルに
 本日の日付を入れたい。


(3)Book2(コピー先ファイル)のFにも
 本日の日付を入れたい。


(4)マクロ終了後、カーソルは、Book2(コピー先のファイル)
 のGのセルに置いておきたい。


【補足】
抽出されるデータは一行のみです。


日中、上記の作業を手作業で繰り返していると、
頭がむず痒くなってくるもので、
何か良い方法はないものかと質問させていただきました。
以上、よろしくお願いいたします。

初めまして、エクセル初心者です。
以下のマクロを、自動記録でやろうとすると、うまくいきません。
類似質問を検索してみたものの、初心者のためアレンジがきかず・・・
他力本願な質問になり、大変申し訳ないのですが、
どなたかお手すきのときに教えていただけると、
とてもうれしいです。

【やりたいこと】

(1)Book1のファイルで、
 オートフィルタでデータを抽出後、
 抽出したデータのBからDのセルをコピーし、
 別ファイル、Book2のファイルの、
 *BからDに「値」で貼り付...続きを読む

Aベストアンサー

>類似質問を検索してみたものの、初心者のためアレンジがきかず・・・
>他力本願な質問になり、
>日中、上記の作業を手作業で繰り返していると、
>頭がむず痒くなってくるもので、
こういう書き込みはしない方がよいですよ
よく考えてください、勉強もしない、やる気も無い人に
赤の他人がアドバイスすると思いますか?

質問も中途半端
>以下のマクロを、自動記録でやろうとすると、うまくいきません。
何処がうまく行かないの?
やりたい事を書くのはよいが、マクロの質問なら
Excelのバージョン、コピー元、先のシート名
抽出もマクロでやるなら
どの列どのようなデータから何を抽出するのか
表の構成もあると回答がしやすい

Sub test()
Dim Rng As Range
With Workbooks("book1").Worksheets("sheet1")
.Range("a1").AutoFilter Field:=1, Criteria1:="3"
Set Rng = .Range("b2", .Range("b65536").End(xlUp)).SpecialCells(xlCellTypeVisible)
.Cells(Rng.Row, 5).Value = Date
Workbooks("book2").Worksheets("sheet2").Range("b65536").End(xlUp).Offset(1, 4).Value = Date
Rng.Resize(1, 3).Copy Workbooks("book2").Worksheets("sheet2").Range("b65536").End(xlUp).Offset(1)
End With
Workbooks("book2").Worksheets("sheet2").Activate
Range("b65536").End(xlUp).Offset(, 5).Select
End Sub

以上、示されていない所は適当に決めたので
このままでは、希望の結果はでないと思います
自分の環境に合わせてアレンジしてください
これを機に勉強されては如何かと思います
厳しいことを書きましたが、社会人として節度のある書き込みをすれば
識者の有用な回答が複数得られると思います

>類似質問を検索してみたものの、初心者のためアレンジがきかず・・・
>他力本願な質問になり、
>日中、上記の作業を手作業で繰り返していると、
>頭がむず痒くなってくるもので、
こういう書き込みはしない方がよいですよ
よく考えてください、勉強もしない、やる気も無い人に
赤の他人がアドバイスすると思いますか?

質問も中途半端
>以下のマクロを、自動記録でやろうとすると、うまくいきません。
何処がうまく行かないの?
やりたい事を書くのはよいが、マクロの質問なら
Excelのバージョ...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Qオートフィルタ抽出データをコピーするマクロについて

マクロについて勉強中の者です。

"Sheet1"にあるデータをオートフィルタで抽出し、
"Sheet2"に抽出データのみをコピーをしたいと思っています。

Range("A10:G59").Select
Selection.ClearContents

With Worksheets("Sheet1").Range("A1")
.AutoFilter
.AutoFilter Field:=1, Criteria1:="○"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9")
End With

End Sub

としてみたのですが、
これを実行すると、オートフィルタが1行目(A1)ではなく、
2行目で設定されてしまい、抽出データがずれてしまいます。

   A    B    C
1 品 名  仕入先  発注数 ←タイトル行に設定したい
2 りんご  ヤマト   10  ← この行に▼が設定される

色々調べた結果のマクロなので、どこが悪いのか見当がつきません。
解りやすく教えていただける方がおられましたら、よろしくお願い致します m(__)m

マクロについて勉強中の者です。

"Sheet1"にあるデータをオートフィルタで抽出し、
"Sheet2"に抽出データのみをコピーをしたいと思っています。

Range("A10:G59").Select
Selection.ClearContents

With Worksheets("Sheet1").Range("A1")
.AutoFilter
.AutoFilter Field:=1, Criteria1:="○"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9")
End With

End Sub

としてみたのですが、
これを実行すると、オートフィルタが...続きを読む

Aベストアンサー

こんにちは。

ご質問者さんのコード自体は、間違いではないと思います。私の知っている限りでは、そういう現象は、オートフィルタにはないからです。何かバグに近いような気がしますが……。
Excelのバージョン等は分かりますか?詳しく調べてみないと分からないです。

一応、ためしに書き換えてみましたが、これは、別にに、ご質問の要件の部分には解決していないような気がします。以下は、.Range("A1").CurrentRegion は、.Range("A1") でも、経験的には同じはずです。

Sub Test1()
  Worksheets("Sheet2").Range("A10:G59").ClearContents
  With Worksheets("Sheet1")
    If .AutoFilterMode Then
      .AutoFilterMode = False
    End If
    With .Range("A1").CurrentRegion
      .AutoFilter Field:=1, Criteria1:="○" '品名を入れる
      .SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9")
    End With
  End With
End Sub

こんにちは。

ご質問者さんのコード自体は、間違いではないと思います。私の知っている限りでは、そういう現象は、オートフィルタにはないからです。何かバグに近いような気がしますが……。
Excelのバージョン等は分かりますか?詳しく調べてみないと分からないです。

一応、ためしに書き換えてみましたが、これは、別にに、ご質問の要件の部分には解決していないような気がします。以下は、.Range("A1").CurrentRegion は、.Range("A1") でも、経験的には同じはずです。

Sub Test1()
  Worksheets("S...続きを読む


人気Q&Aランキング

おすすめ情報