- 締切済み
Excel2003で数百本の鍵の管理をしたいと思っているのですが、
Excel2003で数百本の鍵の管理をしたいと思っているのですが、 例えば「倉庫」というキーワードを入力したら、鍵名に「倉庫」 という文字列が含まれるデータをずらっと表示させるようにする ことはできますか? 可能ならその方法を教えてください。 お願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
VBA・ADO が未体験ゾーンでしたら、tom04 さんの提案された方向で進められることを お勧めいたします。 後で何かの変更があって急遽メンテナンスしなくてはいけない時に 私の提示したコードが理解できていないと『えらいこっちゃ!』になりかねません。 こんな方法も有ったな・・・と記憶の中に留めて置いてください。
- sekkii
- ベストアンサー率50% (13/26)
オートフィルタの「オプション」で [倉庫][を含む]と指定すれば 抽出されると思います。
お礼
回答ありがとうございます。 参考になりました。
- nicotinism
- ベストアンサー率70% (1019/1452)
VBA・ADO を持ち出しては反則ですかね。 シート1のA1に鍵名、B1、C1・・・は何かあれば適当に入れてください。 で、A2~A???(鍵の数だけ)鍵の名前?を入力、B・C列もあれば適当に。 シート1のシート名をSheet1、シート2のシート名をSheet2とします。 VBEに切り替えて、挿入、標準モジュールに下記をコピペ Sub test() Dim strSql As String Dim cnXL As Object Dim rsXL As Object Const adOpenForwardOnly = 0 Sheet2.Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.ClearContents Range("A1").Select Set cnXL = CreateObject("ADODB.Connection") Set rsXL = CreateObject("ADODB.Recordset") With cnXL .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & ThisWorkbook.FullName & "; ReadOnly=True;" .Open End With strSql = "select *" _ & " from [sheet1$]" _ & " where 鍵名 like '%" & Sheet2.Cells(1, 1) & "%'" 'Debug.Print strSql rsXL.Open strSql, cnXL, adOpenForwardOnly Worksheets("sheet2").Cells(2, 1).CopyFromRecordset rsXL rsXL.Close: Set rsXL = Nothing cnXL.Close: Set cnXL = Nothing End Sub Bookを一旦適当な名前で保存。 Sheet2のA1に題名?鍵の名前を入力後 このマクロを実行すれば一覧が出てくるはずです。 Excel2002で検証。
お礼
回答ありがとうございます。 マクロはさっぱりわかりませんが、試してみます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像で説明します。 D1セルに検索したい文字を1文字でも入力するとその文字が含まれているデータすべてを表示するようにしてみました。 A列に鍵名が羅列してあるとします。 B列を作業列として、B2セルに =IF($D$1="","",IF(ISNUMBER(FIND($D$1,A2)),ROW(),"")) という数式を入れ、B2セルのフィルハンドルの(+)マークでダブルクリック、またはオートフィルでずぃ~~~!っと下へコピーします。 そして、D2セルに =IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1)))) という数式を入れ、オートフィルで下へコピーすると画像のような感じになります。 これで何とか希望に近い形にならないでしょうか? 以上、参考になれば良いのですが・・・m(__)m
お礼
画像つきでの回答ありがとうございます! とてもわかりやすく、参考になりました! 早速ためしてみます!
- kmetu
- ベストアンサー率41% (562/1346)
データを入力するときにA倉庫 B倉庫 とあった場合 A B 1 A 倉庫 2 B 倉庫 というようなセルの使い方をして、あとはオートフィルタを利用します
お礼
回答ありがとうございます。 参考になりました。
お礼
親切にありがとうございました。