![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセルのマクロについて質問です。
頑張ってマクロのコードを書いてますが、どうしてもうまくいかないので、得意な方に質問させてください。 稼働管理シートから作業報告書シートへと転記を行うマクロを作成しようと考えています。
転記を行う際に、日付とプロジェクト(指定のプロジェクト一つ)で該当の行を絞って抽出を行いたいです。
また、同じ日付のものが複数行ある場合においても、作業報告書の一つのセルに内容を複数行分入れたいです。
作業報告書に転記する内容としましては、
作業報告書のc.d列には稼働管理シートの該当業におけるn列の最も早い時間を。
作業報告書のe.f列には稼働管理シートの該当業におけるo列の最も遅い時間を。
作業報告書のi.j列には稼働管理シートの該当業におけるk列の合計時間を。
作業報告書のk〜o列には稼働管理シートの該当業におけるg列の内容記載のすべて足したものになります。
要求事項が多く、大変にはなるかと思いますが、ご教授いただけますと幸いです。
よろしくお願いいたします。
![「【至急】エクセルのマクロコードについて」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/543239509_66d0811e3ae8d/M.jpg)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?e8efa67)
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ChatGPT(無料版)は試されましたか?
私自身は別の言語でよく使うのですが、手順を追いって書いたり、サブルーチンを書けば素人が作るくらいのコードならほぼ手直し無しで動くものができました。
私自身はVBAやマクロは1行も書けませんがこんな感じで回答が来ました。
要求を満たしているかどうか不明ですが、参考までに。
以下は、指定された要件を満たすエクセルのマクロコードの例です。このマクロは、日付とプロジェクトを指定して該当する行を抽出し、作業報告書シートに転記します。
```vba
Sub 転記作業報告書()
Dim 稼働管理シート As Worksheet
Dim 作業報告書シート As Worksheet
Dim 日付 As Date
Dim プロジェクト As String
Dim 最終行 As Long
Dim i As Long
Dim 転記先行 As Long
Dim 最早時間 As Date
Dim 最遅時間 As Date
Dim 合計時間 As Double
Dim 内容 As String
' シートの設定
Set 稼働管理シート = ThisWorkbook.Sheets("稼働管理シート")
Set 作業報告書シート = ThisWorkbook.Sheets("作業報告書シート")
' 日付とプロジェクトの設定
日付 = 作業報告書シート.Range("A1").Value ' 例: A1セルに日付が入力されていると仮定
プロジェクト = 作業報告書シート.Range("B1").Value ' 例: B1セルにプロジェクトが入力されていると仮定
' 最終行の取得
最終行 = 稼働管理シート.Cells(Rows.Count, 1).End(xlUp).Row
' 転記先の行の設定
転記先行 = 作業報告書シート.Cells(Rows.Count, 1).End(xlUp).Row + 1
' 初期化
最早時間 = Date + 1
最遅時間 = Date - 1
合計時間 = 0
内容 = ""
' 該当する行を探して転記
For i = 2 To 最終行
If 稼働管理シート.Cells(i, 1).Value = 日付 And 稼働管理シート.Cells(i, 2).Value = プロジェクト Then
' 最早時間
If 稼働管理シート.Cells(i, 14).Value < 最早時間 Then
最早時間 = 稼働管理シート.Cells(i, 14).Value
End If
' 最遅時間
If 稼働管理シート.Cells(i, 15).Value > 最遅時間 Then
最遅時間 = 稼働管理シート.Cells(i, 15).Value
End If
' 合計時間
合計時間 = 合計時間 + 稼働管理シート.Cells(i, 11).Value
' 内容の結合
If 内容 = "" Then
内容 = 稼働管理シート.Cells(i, 7).Value
Else
内容 = 内容 & vbCrLf & 稼働管理シート.Cells(i, 7).Value
End If
End If
Next i
' 作業報告書シートに転記
作業報告書シート.Cells(転記先行, 3).Value = 最早時間 ' C列
作業報告書シート.Cells(転記先行, 4).Value = 最早時間 ' D列
作業報告書シート.Cells(転記先行, 5).Value = 最遅時間 ' E列
作業報告書シート.Cells(転記先行, 6).Value = 最遅時間 ' F列
作業報告書シート.Cells(転記先行, 9).Value = 合計時間 ' I列
作業報告書シート.Cells(転記先行, 10).Value = 合計時間 ' J列
作業報告書シート.Cells(転記先行, 11).Value = 内容 ' K列
作業報告書シート.Cells(転記先行, 12).Value = 内容 ' L列
作業報告書シート.Cells(転記先行, 13).Value = 内容 ' M列
作業報告書シート.Cells(転記先行, 14).Value = 内容 ' N列
作業報告書シート.Cells(転記先行, 15).Value = 内容 ' O列
End Sub
```
### 説明:
1. **日付とプロジェクトの指定**: 日付とプロジェクトは `作業報告書シート` のA1セルとB1セルから取得します。必要に応じて変更してください。
2. **データの抽出と転記**:
- `N列` の最も早い時間を `C列` と `D列` に転記します。
- `O列` の最も遅い時間を `E列` と `F列` に転記します。
- `K列` の合計時間を `I列` と `J列` に転記します。
- `G列` の内容を結合して `K〜O列` に転記します。
このコードを元に、ご自身のシート構成に合わせてカスタマイズしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【至急】エクセルのマクロコー...
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
Excel の複数シートの列幅を同...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
【VBA】複数のシートの指定した...
-
エクセルで、チェックボックス...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
【条件付き書式】countifsで複...
-
Excel VBA ピボットテーブルに...
-
SUMPRODUCTにて別シートのデー...
-
大量のハイパーリンクを簡単に...
-
列の非表示ができません
-
エクセルのブック分割マクロを...
-
Excelに自動で行の増減をしたい...
-
【マクロ】対象データを別シー...
-
excel 複数のシートの同じ場所...
-
VLOOKアップ関数の結果の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
データチェックを行うエクセル...
-
Excel の複数シートの列幅を同...
-
【条件付き書式】countifsで複...
-
Excelでの並べ替えを全シートま...
-
エクセル マクロ 標準モジュー...
-
Excel複数シートにあるデータを...
-
エクセルで、チェックボックス...
-
エクセルのブック分割マクロを...
-
マクロのコードを教えてください。
-
エクセルの列の限界は255列以上...
-
Excel VBA ピボットテーブルに...
-
SUMPRODUCTにて別シートのデー...
-
エクセルVBAで、ある文字を含ん...
-
VLOOKアップ関数の結果の...
-
Excelのセルの色を変えた行(す...
-
エクセルで横並びの複数データ...
おすすめ情報