いつもご指導ありがとうございます。
また教えて頂きたく質問させていただきます。
ブック①とブック②があります。
ブック①には1ヶ月分のシート(31日までの月ならば31シート)があり、各シートはA列に作業開始日・B列に作業終了日・C列に作業場所・D列に作業名・E列に必要材料が記載されています。
記載するシートはB列の作業終了日に合わせて(例:12/10に作業を終わらせる作業は12/10のシートに記載)記載されています。
また、上から10行分(各シートの1~5行目まではINDEXとしてますので実際は6~15行目)の作業は定期的に発生するので日付以外は固定(同一作業であっても量によって作業開始日が変わります=作業期間が変わってくる)の内容です。
ブック②はA列の作業開始日毎に1ブック(例:12/5に作業を始める作業は「12/5作業」という名のブックになりブック①のA列が該当する各項目C・D・Eを書き込む)を作りブック①の内容を転記し他部署と合わせて使います。
ただしこちらにもブック①の定期的な作業を入れる枠として6~15行目は確保しています。
仮に定期的に発生する作業をA・不定期作業をBとします。
ブック①をfind nextを使い検索しブック②に値を転記したいと思っているのですが躓いています。
例えば12/15に作業を終了させる作業A(作業期間10日間=作業開始日12/5)と12/10に作業を終了させる作業B(作業期間5日=作業開始日12/5)が作業が新たに発生したとします。
作業Aは定期的な作業ですのでブック②6~15行までの中の最終行(他の定期的な12/5開始の作業も記載されていると仮定)の次の行に転記、作業Bは16行目以降の最終行の次の行に転記したいのですが範囲を指定しての最終行の取得方法がわかりません。
どのようにコードを書けば良いでしょうか?
何卒ご指導よろしくお願いします。
No.3ベストアンサー
- 回答日時:
定期的な作業を6~15行までの中の最終行の次の行、不定期な作業は16行目以降の最終行の次の行に転記するため、各々の最終行を取得し、次の行を指定するためのVBAは以下のようなものだと思います。
以下のマクロでは、転記すべき行をMsgBoxで返すようにしてみました。
(実行したものを添付画像としましたの参照してください。)
定期的作業については、A15が空セルでない場合、「6~15行目は満杯」である旨を返し、それ以外の場合、A列を15行目から上方へ最終行を探し、5行目より小さい数を返すようならINDEXの最終行である5行目までは転記不可なので、定期的作業の転記開始位置に調整し、転記できる空行の位置を返します。(添付画像①)
さらに、不定期作業は最終行数(最大行数)からA列を上方へ最終行を探し、15行目より小さい数を返すようなら、定期的作業の転記位置の最終行である15行目までは転記不可なので、不定期作業の転記開始位置に調整し、転記できる空行の位置を返します。(添付画像②)
Sub test1()
If Cells(15, 1).Value <> "" Then
MsgBox "定期業務記入行は満杯です"
Else
MaxRow_定期 = Cells(15, 1).End(xlUp).Row
If MaxRow_定期 < 5 Then
MaxRow_定期 = 5
End If
MsgBox "定期業務は" & MaxRow_定期 + 1 & "行目に記入可能です。"
End If
MaxRow_不定期 = Cells(Rows.Count, 1).End(xlUp).Row
If MaxRow_不定期 < 15 Then
MaxRow_不定期 = 15
End If
MsgBox "不定期業務は" & MaxRow_不定期 + 1 & "行目に記入可能です。"
End Sub
ご指導ありがとうございます。
皆様からご指摘をいただいた私の文章を解読頂き、表まで作っていただきありがとうございます!
MaxRow_定期・不定期で転記するセルを指定出来ます。
早速やってみます。
ありがとうございました!
No.2
- 回答日時:
データを入れる範囲が決まってるなら、値があるかどうかを順番に調べてみて、なければそこに値を書き込むって方法もありますよ
データ量によっては手間かもですけど
あと長々と文章もですけど、画像を載せられますのでダミーデータの表を添付するのも宜しいかと
bookを見られない回答者に伝えやすいかも?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA 2 2022/04/27 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2023/01/13 10:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
仕事において、「(ある作業を)...
-
カブの葉は、アク抜き必要です...
-
事務作業のメリットとデメリッ...
-
特殊土木作業員ってなんですか?
-
データ復旧業者ってどういう方...
-
建設工事 土日祝 時間 法律
-
倉庫にフォークリフトで食品を3...
-
高枝チェーンソー便利?
-
SB3UGSでのfbxで出力した際fbx...
-
効率の悪い人
-
製造業 電動ドライバーのコツを...
-
作業をしながら数を数え続ける...
-
一人残業または一人休日出勤っ...
-
冷凍庫での作業限度は何分くらい?
-
合帳(あいちょう)とは言わな...
-
「感想」と「考察」の意味の違...
-
ある動作が「ひとまず終わった...
-
ハツリ作業の作業手順書があっ...
-
xのこの案件は詐欺でしょうか?
-
実作業はどんな意味ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
仕事において、「(ある作業を)...
-
製造業におけるSV派遣てどうい...
-
カブの葉は、アク抜き必要です...
-
特殊土木作業員ってなんですか?
-
一人残業または一人休日出勤っ...
-
照明器具交換 活線作業について
-
建設業の作業中止基準
-
未経験エンジニアの年収
-
作業をしながら数を数え続ける...
-
高枝チェーンソー便利?
-
鉄粉、粉塵について
-
エクセルVBAのIFを使ったコピペ
-
「TT」とはどういう意味でしょ...
-
効率の悪い人
-
承認者が照査を兼ねていたら照...
-
土木積算「潮間作業」について
-
【工学・鉛ライニング】工業の...
-
手袋をしているにもかかわらず...
-
ACCESS2007 レポートデザインビ...
-
迷惑コンクリートミキサー
おすすめ情報