• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ォームに入力された日付のデータのみコピペする続)

フォームに入力された日付のデータのみコピペする方法は?

このQ&Aのポイント
  • 集計.xlsというブックにある[集計]、[東京支店]、[名古屋支店]、[大阪支店]のシートから、フォームに入力された日付のデータのみを[集計]シートにコピペする方法を教えてください。
  • [集計]シートにデータをコピペする際、現在はA2から貼り付けられますが、A3から貼り付けるようにする方法を教えてください。
  • フォームに追加された[担当者]という項目を使って、日付と担当者の両方でデータを絞り込む方法を教えてください。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.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 '書式を「下の行」から持ってきながら行挿入 としてやると良い感じで出来るような気がします。 何にせよ、「マクロの記録」は作るにも勉強するにも非常に便利です。 どんな処理をしたいのか決まったら、ジャンジャン記録して読み返すと 「何をしたら、こう記録された」から「こう書いたら、何が出来る」を経て、 最終的に「何をしたいから、こう書こう」につながっていきます。 「記録」は大事です(笑)。

yakkun2338
質問者

お礼

tsubuyakiさん、ご連絡遅くなりまして申し訳ございませんでした。 ご教授いただきました方法で解決いたしました。 本当に何度もありがとうございます! ご指摘されました通りまずは[記録]することを心にとめ、引き続き勉強していきたいと思います。 この度は誠にありがとうございました!!

yakkun2338
質問者

補足

tsubuyakiさん、ご連絡ありがとうございます! またご連絡が遅くなりまして申し訳ございませんでした。 昨日昼より外出しておりましてお返事ができずにおりました。 私のスキルに見合った形で噛み砕いてわかり易く、とてもご丁寧なご説明 本当にありがとうございます。 ただいまより離籍してしまいますため、後程ご教授いただきました方法を試させていただきます。 取り急ぎお礼申しあげます。

関連するQ&A

専門家に質問してみよう