Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11951 / 13645 ツリー ←次へ | 前へ→

【13106】2列のデータを抽出するには はちみつ 04/4/23(金) 17:01 質問
【13107】Re:2列のデータを抽出するには Asaki 04/4/23(金) 17:05 回答
【13109】Re:2列のデータを抽出するには はちみつ 04/4/23(金) 17:20 質問
【13111】Re:2列のデータを抽出するには Asaki 04/4/23(金) 17:36 回答
【13113】Re:2列のデータを抽出するには はちみつ 04/4/23(金) 17:45 質問
【13117】Re:2列のデータを抽出するには Asaki 04/4/23(金) 17:57 回答
【13121】何度もすいません はちみつ 04/4/23(金) 18:45 質問
【13122】Re:何度もすいません Asaki 04/4/23(金) 18:48 回答
【13123】Re:何度もすいません はちみつ 04/4/23(金) 18:56 お礼
【13124】Re:何度もすいません Asaki 04/4/23(金) 18:58 発言
【13126】Re:何度もすいません はちみつ 04/4/23(金) 19:14 質問
【13127】Re:何度もすいません Asaki 04/4/23(金) 20:37 回答
【13139】Re:何度もすいません はちみつ 04/4/23(金) 23:33 質問
【13150】Re:何度もすいません Asaki 04/4/24(土) 15:31 回答[未読]
【13160】Re:何度もすいません はちみつ 04/4/25(日) 1:10 お礼[未読]

【13106】2列のデータを抽出するには
質問  はちみつ  - 04/4/23(金) 17:01 -

引用なし
パスワード
   下記のようにb列とd列に日付が2列あるのですが、テキストボックスに日付を入力して名前、日付、金額を抽出したいのですが、どのようにしたらよいのでしょうか?名前はa1とa2を結合しています。
オートフィルタなどでできるのでしょうか?初心者ですが、よろしくお願いします。

  a    b    c    d    e
1 名前1  日付  金額  日付  金額
2      日付  金額  日付  金額
3 名前2  日付  金額  日付  金額
4      日付  金額  日付  金額

【13107】Re:2列のデータを抽出するには
回答  Asaki  - 04/4/23(金) 17:05 -

引用なし
パスワード
   こんにちは。

テキストボックスで入力した条件とマッチングするのはどの日付ですか?
オートフィルタは、結合セルがあると上の行しか出てきませんので、多分ダメでしょう。

【13109】Re:2列のデータを抽出するには
質問  はちみつ  - 04/4/23(金) 17:20 -

引用なし
パスワード
     a    b    c    d    e
1 名前1  3/9  7000  4/3  6000
2      4/3  9000  4/9 2000
3 名前2  4/3  6000 4/4  1000
4      4/4  2000  4/6  6000

例えば、テキストボックスに4/3と入力すれば、

名前1 4/3 6000
名前1 4/3 9000
名前2 4/3 6000

という感じに、抽出したいのですが。なにか良い方法があるでしょうか?
よろしくお願いします。

【13111】Re:2列のデータを抽出するには
回答  Asaki  - 04/4/23(金) 17:36 -

引用なし
パスワード
   数式は、できるかどうか判りません。
その他の機能は、ちょっと思いつきません。

ここ、VBAの掲示板ですから、VBAでよいんですよね?
一般の検索処理をマクロで記録して、検索値をテキストボックスの値を使うように変更すればよいかと。

#って、なんか、最近、同じこと書いたな。。。

【13113】Re:2列のデータを抽出するには
質問  はちみつ  - 04/4/23(金) 17:45 -

引用なし
パスワード
   >一般の検索処理をマクロで記録して、検索値をテキストボックスの値を使うように変更すればよいかと。

というのは、どういうことなのでしょうか?
初心者なので、もう少し詳しく説明してもらえないでしょうか?
よろしくお願いします

【13117】Re:2列のデータを抽出するには
回答  Asaki  - 04/4/23(金) 17:57 -

引用なし
パスワード
   メニューから ツール >> マクロ >> 新しいマクロの記録 >> OK
としておいて、検索処理を実行します。
2回以上検索してみましょう。
で、シート上に表示されている青い■を押して、マクロの記録を終了させます。
Alt+F11 でVBEを起動させます。
標準モジュールのところの Module1 をダブルクリックすると、コードが作成さレ底ますので、
この検索条件の部分を、テキストボックスの入力内容に変えます。

とりあえず、この辺までお試しください。

【13121】何度もすいません
質問  はちみつ  - 04/4/23(金) 18:45 -

引用なし
パスワード
   検索処理するという事はどういうことなのでしょうか?
オートフィルタでB列とD列を別々にデータを抽出するという事なのでしょうか?
何度もすいませんが、よろしくお願いします。

【13122】Re:何度もすいません
回答  Asaki  - 04/4/23(金) 18:48 -

引用なし
パスワード
   >検索処理するという事はどういうことなのでしょうか?
ごめんなさい。
ちょっと、手抜きします。(まるっきり同じこと書いてるので)
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=13052;id=excel

>オートフィルタでB列とD列を別々にデータを抽出するという事なのでしょうか?
違います。

【13123】Re:何度もすいません
お礼  はちみつ  - 04/4/23(金) 18:56 -

引用なし
パスワード
   検索という機能があることを知りませんでした。
勉強しなおします。
Asakiさん、何度も質問してすいませんでした。
ご丁寧にありがとうございました。

【13124】Re:何度もすいません
発言  Asaki  - 04/4/23(金) 18:58 -

引用なし
パスワード
   >Asakiさん、何度も質問してすいませんでした。
>ご丁寧にありがとうございました。
あれ?
目的は、まだ達成されてませんが、大丈夫なんですかね??

【13126】Re:何度もすいません
質問  はちみつ  - 04/4/23(金) 19:14 -

引用なし
パスワード
   >あれ?
>目的は、まだ達成されてませんが、大丈夫なんですかね??

2回検索処理を実行するということをマクロ記録した後は、どうればよいのでしょうか?
わがまま言って、すいません。

【13127】Re:何度もすいません
回答  Asaki  - 04/4/23(金) 20:37 -

引用なし
パスワード
   検索値を、テキストボックスの値に置き換えるところはどうでしょうか?
日付の検索のようなので、ちょっと、ひと工夫必要かもしれません。
書き換えられたら、そのマクロを実行して、正しく検索できるか確認してください。

で、肝心なことを聞いてないですが、テキストボックスって、何処にあるんでしょうか?
また、検索結果を書き出すのは何処にしますか?

【13139】Re:何度もすいません
質問  はちみつ  - 04/4/23(金) 23:33 -

引用なし
パスワード
   ▼Asaki さん:
>検索値を、テキストボックスの値に置き換えるところはどうでしょうか?
>日付の検索のようなので、ちょっと、ひと工夫必要かもしれません。
>書き換えられたら、そのマクロを実行して、正しく検索できるか確認してください。
検索できましたが、ひとつ質問があります。
4月2日の時4月22日や4月25日なども含んでしまいました。
このような時、どこをなおせばよいのでしょうか?

>で、肝心なことを聞いてないですが、テキストボックスって、何処にあるんでしょうか?
ユーザーフォーム上にあります。

>また、検索結果を書き出すのは何処にしますか?
とりあえず、新規シートに書き出すように考えています。

お手数かけますが、よろしくお願いします。

【13150】Re:何度もすいません
回答  Asaki  - 04/4/24(土) 15:31 -

引用なし
パスワード
   >4月2日の時4月22日や4月25日なども含んでしまいました。
検索するときの条件を、
対象:値
完全に同一なセルだけを検索する にチェック
として、もう一度試してみてください。
また、マクロの記録で採取したコードでは、どのシートを対象に検索するかの情報は含まれていません。
このままでは、誤動作する可能性がありますので、対象を明示する書き方にします。
>Cells.Find 〜

Worksheets("データがあるシート名").Cells.Find 〜

>新規シートに書き出すように考えています。
新規シートを追加する部分は、マクロの記録をしてみてください。
新規シートを追加した後、この新規シートは ActiveSheet としてアクセスできますから、
まず、名前を付けてしまいましょう。(仮に"test"とする)
例えば、この新規シートのA1セルに"あ"と記入したければ、↓のような記述になります。
Worksheets("test").Cells(1,1).Value = "あ"

今、検索対象が日付ですから、名前と金額を知るには検索結果のセルの隣、或いは更に隣などの情報が必要です。
ヘルプで Offset() を調べてみてください。

【13160】Re:何度もすいません
お礼  はちみつ  - 04/4/25(日) 1:10 -

引用なし
パスワード
   やりたいことが何とかできそうです。
Asakiさん初心者な私に丁寧に教えていただき感謝しています。
色々とありがとうございました。

11951 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free