
マクロ記録手順
1.マクロの記録を開始する。
2.マクロ名を入力する。「売上抽出」
3.「売上伝票」シートの見出しをクリックする。(明示的に「売上伝票」シートのタブを選択して下さい。)
4.表内のセル「A3」をクリックする。
5.メニューバー「データ」「フィルタ」「オートフィルタ」を選択する。
6.「得意先名」列の▼ボタンをクリックして得意先リストを表示し、「サンショップ」を選択します。
7.キーバードから「Ctrl]+「*」を押しリスト全体を選択します。ノートブックの場合は、「Ctrl]+「Shift」+「*」となります。
※リスト・・・Excelでは見出し列に設定された項目に従い、行単位でデータが並ぶ形式を「リスト」と呼びます。
8.ツールバーの「コピー」ボタンを押します。
9メニューバーから「挿入」「ワークシート」をクリックします。
10.ツールバー「貼り付け」ボタン横の「形式を選択して貼り付け」を選択します。
11.表れた画面で、「列幅」にチェックを入れ「OK」をクリックします。
12.「貼り付」ボタンをクリックします。
13.セル「A1」をクリックして選択状態を解除します。
14.「売上伝票」見出しをクリックします。
15.メニューバー「データ」「フィルタ」「オートフィルタ」
16.セル「A1」をクリックして、範囲選択状態を解除します。
17.「記録終了」ボタンをクリックします。
18.最後に記録されたマクロをセルの値を参照して、条件が指定できるように手直しします。
1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 |
Sub 売上抽出() ' ' 売上抽出 Macro ' マクロ記録日 : 2003/11/10 ユーザー名 : yip ' ' Sheets("売上伝票").Select Range("A3").Select Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:="サンショップ" Selection.CurrentRegion.Select Selection.Copy Sheets.Add Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone,SkipBlanks:=False,Transpose:=False ActiveSheet.Paste Range("A1").Select Sheets("売上伝票").Select Application.CutCopyMode = False Selection.AutoFilter Range("A1").Select End Sub |
売上伝票シートを選択する。 セル「A3」を選択する。 リストにオートフィルターを設定する。 リストから左から3番目をオートフィルタの抽出対象とし、条件は「サンショップ」とする。 アクティブセルを基点に、アクティブセル領域を選択する。 選択範囲をコピーする。 新しいシートを追加する。 クリップボードにコピーされたデータを、形式を選択して張り付け、貼り付ける形式を「列幅」にする。 形式を選択して張り付けるオプションを指定する。 コピーされたデータを貼り付ける。(文字色が茶色の箇所は全て規定値の為省略可能です。 コピーモードを解除するためのコードですが、通常は、コピーモードを解除する為には「ESC」キーを押す操作に対応しています。 今回は、マクロの記録中に「ESC」を押す操作はしていませんが、オートフィルタを解除したために、自動的にこのコードが記録されました。 削除しても問題ありません。 |
D1に「得意先名」と見出しを入力し、セルE1に実際の得意先名を入力します。

これを踏まえ、先のコードの4行目を以下のように書き換えます。
Selection.AutoFilter Field:=3, Criteria1:= Range("E1").Value
※セル「E1」の値を、オートフィルタの条件とします。
最後にテキストボックスの「売上抽出」にマクロを登録します。