- ベストアンサー
エクセルVBAでのAutoFilterの使用方法と変数の定義について
- エクセルVBAのAutoFilterを使って特定の期間のデータを抽出し、別シートにコピーする方法を知りたいです。
- UserFormのTextBoxを使って変数を定義しようとしていますが、うまくいきません。正しい書式は何ですか?
- AutoFilterの記録したマクロで日付を指定する部分を変数で指定する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1.VBE画面で、挿入-ユーザーフォーム 2.ユーザーフォーム上にテキストボックスを2個貼りつける。コマンドボタンを1個貼りつける(フィルタ実行起動用)。 3.コマンドボタンをダブルクリック。 Private Sub CommandButton1_Click() End Sub が出る。 4.コードを下記のようにする。 Private Sub CommandButton1_Click() datefrom = UserForm1.TextBox1.Text dateto = UserForm1.TextBox2.Text ' MsgBox datefrom ' MsgBox dateto '---- Range("a1:c12").Select Selection.AutoFilter Field:=1 _ , Criteria1:=">" & datefrom, Operator:=xlAnd _ , Criteria2:="<" & dateto End Sub 5.実行-SUB/ユーザーフォームの実行をクリック。 6.始期年月を入力。2004/5/14のように。TABキーで 次のテキストボックスへ移動 7.終期年月を入力。2004/5/20のように。 8.コマンドボタンをクリック。 9.フィルタが実行されて、ワークシートに 日時 氏名 コード 2004/5/14 山村 k 2004/5/16 植山 d 2004/5/17 下山 r 2004/5/18 中山 f 2004/5/19 山中 g 2004/5/20 山内 h -------- テスト用元データはA1:C12に 日時 氏名 コード 2004/4/23 山田 a 2004/4/30 山下 b 2004/5/13 山上 c 2004/5/14 山村 k 2004/5/16 植山 d 2004/5/17 下山 r 2004/5/18 中山 f 2004/5/19 山中 g 2004/5/20 山内 h 2004/5/21 外山 I 2004/5/22 大山 j でした。
お礼
初歩的な質問に、丁寧な回答をありがとうございました。TextBoxからの所得は"Value"ではなく、"Text"で行えばいいんですね。ありがとうございました。