- ベストアンサー
フォームに入力された日付のデータのみコピペする方法は?
- 集計.xlsというブックにある[集計]、[東京支店]、[名古屋支店]、[大阪支店]のシートから、フォームに入力された日付のデータのみを[集計]シートにコピペする方法を教えてください。
- [集計]シートにデータをコピペする際、現在はA2から貼り付けられますが、A3から貼り付けるようにする方法を教えてください。
- フォームに追加された[担当者]という項目を使って、日付と担当者の両方でデータを絞り込む方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずは、2番目のフィルタの疑問から。 「マクロの記録」機能はご存知ですよね? これを使って「フィルタをかける」作業を記録してみましょう。 Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="1" Selection.AutoFilter Field:=2, Criteria1:="2" と言うような記録が残ると思います。 で、現行のコードから似ている部分を探しましょう。 > With Worksheets(str) > .Range("A1").AutoFilter Field:=1, Criteria1:=TextBox1.Value > End With と言うのが見えますよね。 これに準じて、上記の「記録」を書き直してみます。 With Worksheets(str) .Range("A1").AutoFilter .Range("A1").AutoFilter Field:=1, Criteria1:=TextBox1.Value .Range("A1").AutoFilter Field:=2, Criteria1:=TextBox2.Value 'Field:= には「範囲の左端から数えて何列目か」を指定 End With こうできますね。 あとは、これを元のコードフィルタ部分に書き換えてあげるだけです。 次に1番、3行目から貼り付けしたい件。 今のコードを改造しちゃうのもてではあるんですが、 ここはちょっと発想を転換してみましょう。 「全て貼り付けたあとに、2行目に空白行を作る=行挿入する」 と言う発想はいかがでしょう? これならそんなに難しくなさそうです。 なので、コピー貼り付けの繰り返しが終わった後、と言うタイミングに 「2行目に行挿入する」ように書いてやればOKです。 具体的には Next k Application.CutCopyMode = False '念のために「カットコピーモード」を解除 Rows(2).Insert CopyOrigin:=xlFormatFromRightOrBelow '書式を「下の行」から持ってきながら行挿入 としてやると良い感じで出来るような気がします。 何にせよ、「マクロの記録」は作るにも勉強するにも非常に便利です。 どんな処理をしたいのか決まったら、ジャンジャン記録して読み返すと 「何をしたら、こう記録された」から「こう書いたら、何が出来る」を経て、 最終的に「何をしたいから、こう書こう」につながっていきます。 「記録」は大事です(笑)。
お礼
tsubuyakiさん、ご連絡遅くなりまして申し訳ございませんでした。 ご教授いただきました方法で解決いたしました。 本当に何度もありがとうございます! ご指摘されました通りまずは[記録]することを心にとめ、引き続き勉強していきたいと思います。 この度は誠にありがとうございました!!
補足
tsubuyakiさん、ご連絡ありがとうございます! またご連絡が遅くなりまして申し訳ございませんでした。 昨日昼より外出しておりましてお返事ができずにおりました。 私のスキルに見合った形で噛み砕いてわかり易く、とてもご丁寧なご説明 本当にありがとうございます。 ただいまより離籍してしまいますため、後程ご教授いただきました方法を試させていただきます。 取り急ぎお礼申しあげます。