こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの抽出に関するマクロ

(1)OSはVistaです。
(2)エクセル2007を使用しています。
(3)シートは「会員情報」「抽出条件」「抽出結果」の3枚です。
(4)「会員情報」シートのA5からR588までデータ(氏名、住所、電話番号など)が入っています。A5からR5は、タイトル行(フィールド)です。R列は「フォームコントロール」で挿入したチェックボックスです。。
(5)「抽出条件」シートには、会員の種類による抽出ができるような条件(正会員、準会員、協賛会員など)が設定してあります。
(6)「抽出結果」シートには、抽出された結果がコピーされます。

「会員情報」シートのデータを、「抽出条件」シートで指定した条件で抽出し、「抽出結果」シートにコピーするマクロは成功しました。

チェックボックスにチェックを入れた会員を抽出し、その方たちの郵便用ラベルを作成するのが最終目標ですが、今は「会員情報」シートのチェックボックスを使った抽出とその結果のコピーができないところでストップしています。チェックボックスを使った抽出とその結果のコピーのマクロを教えてください。

投稿日時 - 2012-04-01 00:47:55

QNo.7395415

困ってます

質問者が選んだベストアンサー

今回ご質問の内容と、既に出来ている

>「抽出条件」シートで指定した条件で抽出し、「抽出結果」シートにコピーする

の部分との連携が不明なので、そこは応用して自作してください。




ご質問内容:
>今は「会員情報」シートのチェックボックスを使った抽出とその結果のコピーができないところでストップしています

たとえば
sub macro1()
 dim c
 for each c in worksheets("シート名").checkboxes
 c.topleftcell = c.value
 next c

 worksheets("シート名").range("R5:R588").autofilter field:=1, criteria1:=1
 worksheets("シート名").range("A5:R588").copy destination:=worksheets("抽出結果").range("A1")
 worksheets("シート名").autofiltermode = false
 worksheets("抽出結果").checkboxes.delete
end sub

言わずもがなですが、R列に配置した「フォームコントロールの」チェックボックスは、各セルの中にきちんと収めて配置しておかなければいけません。

投稿日時 - 2012-04-01 02:57:48

補足

素早い対応、本当に助かります。さっそくやってみました。

教えていただいたものを打ち込んでみましたがエラーがでました。「destination:」の「:」を取ったら動きました。

それでも思った結果(チェックボックスにチェックを入れた会員のデータのみ抽出)が現れません。

(1)「抽出結果」シートにはなんのデータも出ません。
(2)「会員情報」シートのチェックボックス欄のあるR列には、チェックのあるセルには「1」、チェックのないセルには「-4146」という数字が現れました。

【補足】
『「抽出条件」シートで指定した条件で抽出し、「抽出結果」シートにコピーするの部分との連携が不明』ということでしたので、以下に例を書き出します。

Sub 正会員の抽出()
MsgBox "正会員を会員番号順に抽出します"
Sheets("会員情報").Select
Range("a5:r588").AdvancedFilter xlFilterCopy, Sheets("抽出条件").Range("d1:d2"), CopyToRange:=Worksheets("抽出結果").Range("b5:s5")
Sheets("抽出結果").Select
ActiveWindow.FreezePanes = False
Range("a6").Select
ActiveWindow.FreezePanes = True
End Sub

「抽出結果」シートの上部にはボタンが配置してあるため、B5から下にデータがコピーされるようになっています。A列は、人数を数えるための数字がいれてあります。

「言わずもがなですが、R列に配置した「フォームコントロールの」チェックボックスは、各セルの中にきちんと収めて配置しておかなければいけません。」と書かれていますが、これもよく分かりません。(^_^;

配置にコツがあるのでしょうか?私は1ばん上のセルにチェックボックスを挿入し、あとはオートフィルでコピーしていきました。高さや幅、セル内の位置に指定がありますか?

マクロを始めたばかりで、keithin様が書いてくださったプロシージャの意味が半分くらいしか分かりません。何がキモで何が不要なのかも分かりません。お助けください。

投稿日時 - 2012-04-01 09:51:40

お礼

回答ありがとうございました。いろいろ試してみましたが、私の力では解決できず、他の方法をとることにしました。ご教授に感謝します。

投稿日時 - 2012-04-01 21:51:28

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問