- ベストアンサー
Excel 元シートの条件を入れた行を別シートへコピーする方法を教えてください
- Excelの元シートで条件を入れた行を別シートへコピーする方法について教えてください。
- 元のシートのデータを会社ごとに分けてコピーする方法を教えてください。
- コピーする際には、データだけでなく書式も一緒にコピーする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 各社別Sheetの利用目的にもよりますが、 閲覧や印刷の目的だけでSheetを分けているとしたら、少し効率が悪いかもしれません。 集約された一つのSheetでデータの追加修正削除を行って、 閲覧/印刷時にフィルタリングするという方が良いと思われます。 そのほうがデータの一元化が図れますし、各社別Sheetにコピーする場合は、 コピー後にデータの修正や削除が行われた場合の対応も考えなければなりませんよ? とりあえず、行をコピーする時にどんなタイミングでコピーするか、ですが、 入力直後というのはいろんな点で制御が大変になるので、 入力後、コピーしたい行のA列をダブルクリック。 という事でどうですか? 該当Sheetがなければメッセージを出して終了します。 あればコピーしてコピー後のシートの行をSelectします。 その、『元のシート(Sheet1)』のシートタブを右クリックして[コードの表示]。 VisualBasicEditor(VBE)が起動します。 そのVBE内のカーソルがあるコードペインに下記マクロをコピーペーストします。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim sh As Worksheet Dim r As Range With Target If .Row <> 1 And .Column = 1 And Len(.Value) > 0& Then Cancel = True On Error Resume Next Set sh = Worksheets(.Value) On Error GoTo 0 If sh Is Nothing Then MsgBox "no sheet": Exit Sub On Error GoTo ERRLINE Set r = sh.Cells(Rows.Count, 1).End(xlUp).Offset(1) .EntireRow.Copy r Application.Goto r End If End With Set r = Nothing Set sh = Nothing Exit Sub ERRLINE: MsgBox Err.Number & vbLf & Err.Description End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
関数はデータを条件に合うシート・セルにもって行くイメージの処理には弱いのです。エクセルの関数を少しやればそのことに気づくはずです。 関数はデータを採ってきて、置くセルから考えるものです。 それが判らないと、同じような質問を関数でやりたいと繰り返すことになります。 >A社であればA社のシートにコピーされるようにしたいです >にA社のシートにデータがあったら既存のデータの下に データがコピーされるようにしたい。 これらは関数ではできないか、式が非常に複雑になります。 ーーー こういう業務的なことにエクセルを使いたかったら、VBAを勉強してください。バッチ処理(起動処理をかけたときのみ実行)になりますが。