元のシート(Sheet1)のデータが次のように表になっております。
A列の依頼先は、未定で、決定したら、A社、B社と入力します。
D列以降は月ごとのスケジュール表となっており、☆は赤色文字、
☆と◆が入力されたセルは黄色に塗られております。
A B C D E F
1依頼先 装置名 台数 1月 2月 3月…
2 A社 ROBO 1 ☆ ◆
3 A社 ROBO 1 ☆ ◆
4 ROBO2 2 ☆
5 B社 ROBO3 1 ☆ ◆
A社、B社…と、会社ごとにシートが作成してあり、
表の配置はSheet1と全く同じです。
すでにいくつかの装置のスケジュールが入力されているとします。
Sheet1の依頼先の欄に、社名を入力したら、入力した行がそのまま
A社であればA社のシートにコピーされるようにしたいです。
その際に、既にA社のシートにデータがあったら既存のデータの下に
データがコピーされるようにしたい。
また、文字色・セルの色などの書式も一緒にコピーされるように
したい。
何も入力されていない空白のセルは、空白のままコピーされてほしい。
同様に、B社と入力したらその行がB社のシートに、
書式ごとコピーされるようにしたい。
社名が増えたら、会社ごとのシートを増やして随時対応したい。
以上の作業、できますでしょうか?
できれば早急に回答いただきたいです。
宜しくお願い致します。
No.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
No.1
- 回答日時:
関数はデータを条件に合うシート・セルにもって行くイメージの処理には弱いのです。
エクセルの関数を少しやればそのことに気づくはずです。関数はデータを採ってきて、置くセルから考えるものです。
それが判らないと、同じような質問を関数でやりたいと繰り返すことになります。
>A社であればA社のシートにコピーされるようにしたいです
>にA社のシートにデータがあったら既存のデータの下に
データがコピーされるようにしたい。
これらは関数ではできないか、式が非常に複雑になります。
ーーー
こういう業務的なことにエクセルを使いたかったら、VBAを勉強してください。バッチ処理(起動処理をかけたときのみ実行)になりますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
エクセルのワークシートをUSBメ...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excel 数式の保護をしたセルを...
-
Excelの行をコピーして貼り付け...
-
EXCELで別のブックから式をコピ...
-
VBA シートをコピー後、ボタン...
-
エクセルのページをシートごと...
-
【エクセル】プルダウン設定の...
-
エクセルマクロ 別シートに横方...
-
シートが保護されていないのに...
-
エクセルシートを別のエクセル...
-
エクセルの1シートの内容を複...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルVBA 1行飛ばしで転記す...
-
【Excel VBA】シートコピー時、...
-
シートのコピーでリンク先をコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excel シートのコピーの際、ペ...
-
EXCELで別のブックから式をコピ...
-
【エクセル】プルダウン設定の...
-
エクセルの1シートの内容を複...
-
【Excel VBA】シートコピー時、...
-
Excel シートに別のExcelシート...
-
エクセルのワークシートをUSBメ...
-
エクセルシートを別のエクセル...
-
エクセル オートフィルタは行...
-
PDFファイルをコピーしてエクセ...
-
EXCEL2007でシートをコピーする...
-
シートが保護されていないのに...
-
VBA シートをコピー後、ボタン...
-
エクセルのページをシートごと...
-
エクセルでシートを「移動また...
おすすめ情報