住所録をアクセスで管理しています。
フィルタの使い方なんですが、抽出したもの以外を表示する方法ってあるんですか?例えば、東京都の住所を抽出して、逆に東京のレコード以外の住所だけを表示させることです。
まだ、初心者なのでさっぱりわかりません。
また、例えば、現住所と本籍が違う人だけを表示する方法ってあるんですか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんばんはっ。


テーブルがどのようになっているかが良くわからないので、違うかもしれませんが
>東京都の住所を抽出して

"フォームフィルタ"をクリック(レコード→フィルタ→フォームフィルタでも可)
住所のところに(フィールドの名前がわからないので、勝手に住所と書いています)
Like "東京都*"
と入力し、フィルタを実行すると
東京都だけが抽出されます。

>東京のレコード以外の住所
上記と同じ要領で
Not Like "東京都*"
と入力し、フィルタを実行すると
東京と以外が抽出されます。

>現住所と本籍が違う人だけ
フィールドの名前が、仮に"現住所"と"本籍"だったら
上記と同じ要領で
現住所のフィールドの箇所に
<>[本籍]
と入力し、フィルタを実行すると
出来ると思います。

フィルタの実行の仕方は大丈夫ですか?
杯(さかずき)の様なアイコンが、フィルタの実行です。
全然違ったらごめんなさい。
    • good
    • 0
この回答へのお礼

not like" "で解決しました。
有り難うございました。

お礼日時:2001/06/19 09:44

テーブルの構成がわからないのでなんとも言えませんが、フィルタではなくクエリーを利用されたらよいと思います。

    • good
    • 0
この回答へのお礼

解決しました。有り難うございました。

お礼日時:2001/06/19 09:46

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qフィルタで検索した行をマクロで削除する時のコード。

フィルタで検索した行を一括して削除するマクロを作りました。
記録して加工したマクロで今のところ動くのですが、
理解不能の箇所があるので教えてください。

下記マクロはC列の空白行をフィルターで選択して、表示された行を削除するマクロです。(データは2行目から始まっていて、フィルターは1行目に行います。また、行は全て連続しています。)
また、コメントを各コードにつけています。

ここで、コメント内の(1)で示した箇所は2行目を選ぶことになっているのですが、何故これで良いのでしょう?2行目のデータがフィルターにより隠れることもあるのですが、このコードできちんと動きます。
可視セルしか削除しないのなら、分かるのですが、
そのようなコードも無いようですし・・・
なぜこのコードで動くのか教えてください。

Rows("1:1").Select  '1行目を選ぶ
Selection.AutoFilter  'オートフィルター
Range("C1").Select   'C1を選ぶ
Selection.AutoFilter Field:=3, Criteria1:="=" '空白行を探す。Field3は不明です
Rows("2:2").Select  '(1) 2行目を選択
Range(Selection, Selection.End(xlDown)).Select '2行目から連続した最後の行までを選択
Selection.Delete Shift:=xlUp  '選んだところをDelして上に詰める。
Range("C1").Select  'C1を選ぶ
Selection.AutoFilter Field:=3  'フィルタ解除

基本的なことかもしれませんが、ご教示頂ければ幸いです。
よろしくお願いします。

フィルタで検索した行を一括して削除するマクロを作りました。
記録して加工したマクロで今のところ動くのですが、
理解不能の箇所があるので教えてください。

下記マクロはC列の空白行をフィルターで選択して、表示された行を削除するマクロです。(データは2行目から始まっていて、フィルターは1行目に行います。また、行は全て連続しています。)
また、コメントを各コードにつけています。

ここで、コメント内の(1)で示した箇所は2行目を選ぶことになっているのですが、何故これで良いのでしょう?2行...続きを読む

Aベストアンサー

こんにちは。

簡単に言うと
フィルターを掛けて抽出された範囲を選択して何かしらの処理をさせるとその処理の対象は抽出されたセルのみになるということです。

例えば、4,7行が抽出されていてその2行を選択すると、実際には、4,7行だけではなく、抽出されていない5,6行も選択された状態になり、選択範囲は、4,5,6,7行なりますが、処理の対象はあくまでも抽出された4,7行のみになるということです。
 
ですから、質問のように抽出されてない行を含めて選択しても問題はないことになります。
もちろんそのフィルターを掛ける表の範囲であることはいうまでもありません。
 
但し、選択範囲をループして処理する場合は、選択範囲全て(例では、4567行)が処理対象になりますのでそこは注意が必要です。

通常このような場合は、可視セルのみ選択して処理するのが普通です。
以上です。

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特定のセルをフィルタするマクロを作りたい

特定のキーワードが含まれるセルをフィルタするマクロを作りたいです。

使用環境はExcel2010です。

口頭ではわかりにくいので、画像を添付します。
添付画像のように、それぞれの人物名と点数が一覧になった表があります。

特定の名前の人で点数が一定以下の行をフィルターしたいのですが、毎回フィルターで名前を選ぶのが面倒なので、マクロの記録機能で下記のマクロを作成しました。

Selection.AutoFilter
ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=2, Criteria1:="=鈴木", _
Operator:=xlOr, Criteria2:="=田中"
ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=3, Criteria1:="<70", _
Operator:=xlAnd

上記のマクロで、「田中」と「鈴木」のみ、点数が70点に満たなかった行を抜き出しています。

しかし、他部署の人物も調査の対処に含めるため、E2:E7セルに調査したい対象の名前を入れ、自動的にセルに入力された名前でフィルタリングされるようにしたいです。

この際のマクロの記載方法を知りたいです。

*部署によって人数が異なるため、E2:E7セルに入力する名前がすべて埋まるとは限りません。
*実際の名前と点数は毎月新しいExcelブックで送られてくるので、フィルター用のExcelシートにコピーペーストで張り付けて使用予定です。
*記載されている名前や点数は例です。

特定のキーワードが含まれるセルをフィルタするマクロを作りたいです。

使用環境はExcel2010です。

口頭ではわかりにくいので、画像を添付します。
添付画像のように、それぞれの人物名と点数が一覧になった表があります。

特定の名前の人で点数が一定以下の行をフィルターしたいのですが、毎回フィルターで名前を選ぶのが面倒なので、マクロの記録機能で下記のマクロを作成しました。

Selection.AutoFilter
ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=2, Criteria1:="=鈴木", _
Oper...続きを読む

Aベストアンサー

こんにちは!

お使いのバージョンがExcel2010というコトですので、一例です。
(Excel2007以降で動くと思います)

Sub Sample1()
Dim i As Long, lastRow As Long, str As String, myArray
lastRow = Cells(Rows.Count, "E").End(xlUp).Row
If lastRow > 1 Then
For i = 2 To lastRow
str = str & Cells(i, "E") & ","
Next i
str = Left(str, Len(str) - 1)
myArray = Split(str, ",")
Range("A1").AutoFilter field:=2, Criteria1:=myArray, Operator:=xlFilterValues
End If
End Sub

※ C列点数でのフィルタは考慮していません。

こんな感じではどうでしょうか?m(_ _)m

こんにちは!

お使いのバージョンがExcel2010というコトですので、一例です。
(Excel2007以降で動くと思います)

Sub Sample1()
Dim i As Long, lastRow As Long, str As String, myArray
lastRow = Cells(Rows.Count, "E").End(xlUp).Row
If lastRow > 1 Then
For i = 2 To lastRow
str = str & Cells(i, "E") & ","
Next i
str = Left(str, Len(str) - 1)
myArray = Split(str, ",")
Range("A1").AutoFilter f...続きを読む

QExcelで作成した住所録にオートフィルタをかけ、ユーザーフォームで1件ずつ表示

エクセル2007を使用して住所録を作成しています。
一行に1名ずつの情報(各列に氏名など)が入るようになっています。
A列にリスト番号・B列に氏名、といった感じで作成しています。
一覧表示だと列の数が多く個別の内容が分かりにくいため、
ユーザーフォームを使って1件ずつ詳細を見られるようにしました。

ユーザーフォームに付けたコマンドボタン「次」を押すと
順番(住所録リストの上から順)に個別の内容が表示されるように
したのですが、オートフィルタをかけてしまうと
非表示のリストもユーザーフォームに表示されてしまいます。

そこで、いくつかの参考書などを使って組んでみたのですが、
私の作ったものではコマンドボタン「次」を押すと
オートフィルタで表示されている一番下の
リストにユーザーフォームの内容が飛んでしまいます。

どのようにすれば、オートフィルタで表示されているリストのみを
順番にユーザーフォームに表示ができるのでしょうか?

私が作ったものです。↓

Private Sub cmd次_Click()
Dim r As Range, rr As Range, rs As Range

If Not Worksheets("名簿").AutoFilterMode Then
 データ行 = データ行 + 1
Else
Set r = Worksheets("名簿").Range("A3", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)

For Each rr In r
For Each rs In rr.Areas
データ行 = rs.Row
Next rs
Next

 End If
表示データ変更
End Sub

このような質問で分かりにくいようでしたらすみません。

どなたかご教授いただければ幸いです。

エクセル2007を使用して住所録を作成しています。
一行に1名ずつの情報(各列に氏名など)が入るようになっています。
A列にリスト番号・B列に氏名、といった感じで作成しています。
一覧表示だと列の数が多く個別の内容が分かりにくいため、
ユーザーフォームを使って1件ずつ詳細を見られるようにしました。

ユーザーフォームに付けたコマンドボタン「次」を押すと
順番(住所録リストの上から順)に個別の内容が表示されるように
したのですが、オートフィルタをかけてしまうと
非表示のリストもユー...続きを読む

Aベストアンサー

次の非表示ではない(=表示されている)行を取得できればよいということですよね?

 Do
  データ行 = データ行 + 1
 Loop Until Not Rows(データ行).Hidden

でいけると思います。
最大行数に制限があるなどの場合は、判断条件にそれを追加してください。

QエクセルのVBAマクロを使用したフィルタの掛け方

エクセルで オートフィルターを自動で実行するような
プログラムを組んでみたいのですが、アドバイスを
よろしくお願いします。
A1セルに入力した数字を元にA3~B10のデーターに自動でフィルターを実行し表示させたいのです。

よろしお願いします。

Aベストアンサー

こんにちは。
以下のマクロを参考にしてください。
マクロ貼り付け方法: 入力シートをマウス右Click → 「コードの表示」→ 表示される画面に貼り付け

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    With ActiveSheet
      .Range("A2:A10").AutoFilter Field:=1, Criteria1:="=" & .Range("A1"), Operator:=xlAnd
    End With
  End If
End Sub

Qアクセスの住所録に増分の住所データを追加するには

エクセルで作られた表(住所録)を元にアクセスで顧客データを管理していますが、一月に100件から150件増えたり減ったりします。もらったエクセルのデータをアクセスに反映させて更新するにはどうしたら良いか分からず困っています。
 一件づつ入力するのは面倒なので良い方法があったら教えてください。
 お願いします。

Aベストアンサー

アクセスの項目の並びとエクセルの項目の並びが同じならコピー&ペーストでできると思います。同じでないなら一旦エクセルの表をインポートしてアクセスの表にして、その表を追加クエリーで住所録に追加すればいいと思います。

Qaccess マクロでのフィルタの解除の方法

フィルタをかける時は、

***************************
アクション:フィルタの実行
フィルタ名:なし
Where条件式:[フィールド1]="あ"
***************************

で、できますが、
フィルタを解除する時はどのようなマクロを作ればいいのでしょうか?

VBAでやるなら、
Me.Form.FilterOn = False
をマクロでやりたいです。

アドバイスよろしくお願いします。

Aベストアンサー

> VBAでやるなら、
> Me.Form.FilterOn = False
> をマクロでやりたいです。

ご質問の趣旨が「並べ替えは維持した状態で、フィルタだけ解除したい」という
ことでしたら、以下の方法で対応できます。


a)フィルタの解除専用の場合
***************************
アクション:コマンドの実行
コマンド:フィルタをすべて解除
***************************
※フィルタが適用されていない状態で実行するとエラーになります。
  (コマンドボタンで実行させる場合、フィルタ未適用時はボタンを使用不可
  にするか、マクロの『条件』欄に「~.FilterOn = True」の記述が必要、と)
  また、フォームのプロパティシートの『データ』タブにある『フィルタ』欄(VBAでの
  Me.Form.Filterに相当)に設定された文字列も削除されます。


b)フィルタの適用/解除を交互に切り替える場合
***************************
アクション:コマンドの実行
コマンド:フィルタの実行/解除
***************************
※当該フォームにフィルタが設定されていない場合、エラーとなります。
 (フォームのプロパティシートの『データ』タブにある『フィルタ』欄に
  フィルタとなる文字列が設定されていればOk:)
 (フィルタが適用済みなら解除、解除済みなら適用、となります)


因みに、マクロのデザインビューで、『デザイン』リボンの『表示/非表示』グループ
内にある『すべてのアクションを表示』をオンにしてもよいのでしたら、以下の
方法もあります。
(VBAでの方法をご存知の上でマクロで対応ということは、勤務先のセキュリティ
 方針によるものかと思いますので、この方法も不可かもしれませんが(汗))

***************************
アクション:値の代入
アイテム:Forms!フォーム名.Form.FilterOn
式:False
***************************

※サブフォームの場合の『アイテム』は以下のようになります:
 Forms!フォーム名!サブフォームコントロール名.Form.FilterOn

> VBAでやるなら、
> Me.Form.FilterOn = False
> をマクロでやりたいです。

ご質問の趣旨が「並べ替えは維持した状態で、フィルタだけ解除したい」という
ことでしたら、以下の方法で対応できます。


a)フィルタの解除専用の場合
***************************
アクション:コマンドの実行
コマンド:フィルタをすべて解除
***************************
※フィルタが適用されていない状態で実行するとエラーになります。
  (コマンドボタンで実行させる場合、フィルタ未適用時はボタンを使用不可
  にするか、...続きを読む

QACCESSで住所録

勉強のためにACCESSで住所録を作ろうと思っています。

データを入れたのちに

1 大学時代の友人
2 会社関係
3 親戚

というようにふりわけたいのです。

**************************

この場合
1 元の住所録テーブルに所属Noフィールドをおき、
  別に所属テーブルを作って所属Noフィールドと所属名フィールドで
  リレーションを組む。

2 所属名フィールドを必要分作ってチェックボックス形式にして
  「大学の友人」のところにチェックのある人を抽出する
  という方式にする。

3 フォームでデータベースを作成するときにドロップダウン方式にする
  (ただしこのやり方はわからない。できるなら教えてください)

どれがいいと思いますか?
また他に良い方法はありませんか?
ヴァージョンは2002です。

それとこの作った住所録で宛名印刷はできますか?
するにはどうしたらできるようになりますか?

なにせ初心者なのでサルでもわかるようにお願いします。
また一度書き込んだら補足がきてないかCHECKしていただくよう
よろしくお願いいたします。

勉強のためにACCESSで住所録を作ろうと思っています。

データを入れたのちに

1 大学時代の友人
2 会社関係
3 親戚

というようにふりわけたいのです。

**************************

この場合
1 元の住所録テーブルに所属Noフィールドをおき、
  別に所属テーブルを作って所属Noフィールドと所属名フィールドで
  リレーションを組む。

2 所属名フィールドを必要分作ってチェックボックス形式にして
  「大学の友人」のところにチェックのある人を抽出する
  という方式...続きを読む

Aベストアンサー

住所録と言うテーブルには、所属Noと言うフィールドは必須でしょうね、でなければ、分類するのに別な項目を設ける必要がありますね
で、もう一つのテーブル、所属Noと名称と、言うフィールドで出来ているテーブルとで、選択クエリーを作成してやれば、誰が何処の所属になるかの、一覧が出来ます

単に、振り分けるだけなら、この選択クエリーをデータソースにして、パラメータークエリー(選択クエリーの抽出条件にパラメーターを設定する事です)を作成してやれば、どの分類でも抽出可能ですね

後は、出来たパラメータークエリーをソースにして、レポートを作成してやれば、印刷レイアウトを自由に組めますよ

宛名印刷は、ここで色々書くより、ウィザードを起動してみた方が判り易いと思いますよ

>3 フォームでデータベースを作成するときにドロップダウン方式にする
↑これって、フォームでデータ入力をしたい、そう言う事ですか?
んで、所属Noフィールドにダウンリストを割り当てたい、そう理解して良いんでしょうかね?

その場合は、フォームのデザイン画面で、ツールボックスから、ダウンリストを配置し、そのソースを、所属Noテーブルにしてやれば良い訳です
勿論、所属Noテーブルに、主キーを設定してあれば常に並べ替えが行われたりしますけど、主キーを設定したくない場合は、選択クエリーを作成しておいて、Noフィールドに昇順、若しくは降順の設定をしてやれば、余計な制限に悩む事は無いです

大抵の事は、ウィザードで出来る筈ですので、ウィザードを起動してみて、それで判らない場合は、ヘルプを検索してみると、かなり詳しい事が記載されてますよ

勿論、ヘルプに書かれていない事も、山ほどありますけどね

住所録と言うテーブルには、所属Noと言うフィールドは必須でしょうね、でなければ、分類するのに別な項目を設ける必要がありますね
で、もう一つのテーブル、所属Noと名称と、言うフィールドで出来ているテーブルとで、選択クエリーを作成してやれば、誰が何処の所属になるかの、一覧が出来ます

単に、振り分けるだけなら、この選択クエリーをデータソースにして、パラメータークエリー(選択クエリーの抽出条件にパラメーターを設定する事です)を作成してやれば、どの分類でも抽出可能ですね

後は、出来た...続きを読む

QExcel2003でシート保護(オートフィルタ使用にはチェック)するとマクロのオートフィルタでエラーになる

QNo.3901563で回答いただき、Excelの試用で保護後のオートフィルタは使えないのはわかりました。
そこで予めオートフィルタを設定し、シートに保護をかけました。
Excelの画面上ではオートフィルタは使用できます。
マクロよりオートフィルタの抽出条件を変更するコマンドを実行すると「保護されたシートに対して、このコマンドは実行できません」と表示されます。コマンドは新しいマクロの記録で操作を記録したものです。記録したときは特にエラーはでませんでした。

Selection.AutoFilter Field:=2, Criteria1:="AAA"

マクロのコマンドでは保護のかかったシートのオートフィルタの抽出条件を変更することは出来ないのでしょうか。
マクロの前後にシート保護を解除するコマンドを入れようかとも思ったのですが、保護にパスワードがかかっており、本末転倒となるもので。

Aベストアンサー

こんにちは。

'標準モジュールで、自動設定

Sub Auto_Open()
Const PWS As String = "PS" 'パスワード
 With Worksheets("Sheet2")
  .Unprotect PWS
  .Protect PWS, UserInterFaceOnly:=True
  '以下をつければ、手動でもオートフィルタは使えます。
  .EnableAutoFilter = True
 End With
End Sub

'-----------------------------------------------
UserInterFaceOnly:=True のオプションをつければ、マクロで処理できますし、また、EnableAutoFilter にすれば、保護された状態で、オートフィルタは使えます。

なお、オートフィルタは、こんな感じです。

Sub Test1()
With Range("A1").CurrentRegion
 .AutoFilter Field:=2, Criteria1:="aaa"
End With
End Sub

こんにちは。

'標準モジュールで、自動設定

Sub Auto_Open()
Const PWS As String = "PS" 'パスワード
 With Worksheets("Sheet2")
  .Unprotect PWS
  .Protect PWS, UserInterFaceOnly:=True
  '以下をつければ、手動でもオートフィルタは使えます。
  .EnableAutoFilter = True
 End With
End Sub

'-----------------------------------------------
UserInterFaceOnly:=True のオプションをつければ、マクロで処理できますし、また、EnableAutoFilter にすれば、保護された状態...続きを読む

QMCアクセスで フォームフィルタで抽出

MCアクセスです。
フォーム画面でフォームフィルタで抽出しようとするとき

1.条件を指定したいフィールドをクリックする。
2.「▽」をクリックする
3.一覧から条件とする項目を選択する。

この時、項目がコンボックス(?)のように出るフィールドと、項目が出ないフィールド(IsNull,Is Not Nullと出る)があります。

どのように設定したら、全てのフィールドで項目が出てくるのでしょうか?

__

Aベストアンサー

MicrosoftのAccessのことでよろしいでしょうか。

1)Accessのメニューで、「ツール(T)」→「オプション(O)」をクリック
2)「オプション」ダイアログの「編集/検索」タブをクリック
3)「レコード数が次の値を超えるときは、リストを表示しない」欄の値を変更

これでいけると思います。
(Access97で確認しましたが、恐らく他のバージョンでも同様かと)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報