エクセルマクロについて質問があります。
お力を貸して下さい。
シート名 休憩休日表
A列に休憩開始日 10:00:00 AM
B列に休憩終了日 10:10:00 AM
C列に休日開始日 2017/1/21
D列に休日開始時間 8:30:00 AM
E列に休日終了日 2017/1/22
F列に休日終了時間 8:30:00 AM
シート名 生産計画
O列に半成品残時間 26.0h
T列に半成品開始日 1/17 8:30
V列に半成品完了日 答えを求めたいです
X列に完成品残時間 26.0h
AC列に完成品開始日 1/17 8:30
AE列に完成品完了日 答えを求めたいです
休憩休日を省いた時間を求めたいのですが
下記内容を少し変更したいのですが
お力を貸して頂けたら助かります。
Function 終了日時(開始日時 As Variant, 経過時間 As Variant, 休憩 As Range, 休日 As Range) As Variant
Dim D As Variant
Dim K As Long
Dim KS As Variant
Dim KE As Variant
Dim 休開始 As Variant
Dim 休終了 As Variant
終了日時 = 開始日時 + 経過時間 / 24
休開始 = 開始日時
休終了 = 開始日時
Do
If Not (終了日時 <= 休開始 Or 休終了 <= 開始日時) Then
終了日時 = 終了日時 + 休終了 - 休開始
End If
Call 次の休憩を求める(休開始, 休終了, 休憩, 休日)
Loop Until 終了日時 <= 休開始
End Function
Sub 次の休憩を求める(休開始 As Variant, 休終了 As Variant, 休憩 As Range, 休日 As Range)
Dim KS As Variant
Dim KE As Variant
Dim HS As Variant
Dim HE As Variant
Dim D As Variant
Dim K As Long
'次の休憩を求める
D = DateValue(Format(休終了, "yyyy年mm月dd日"))
Do
For K = 1 To 休憩.Rows.Count
KS = D + 休憩(K, 1)
KE = D + 休憩(K, 2)
If KS > 休終了 Then Exit For
Next K
D = D + 1
Loop Until KS > 休終了
'次の休日を求める
For K = 1 To 休日.Rows.Count
HS = 休日(K, 1)
HE = 休日(K, 2)
If HS > 休終了 Then Exit For
Next K
'休日と休憩の判定
If K >= 休日.Rows.Count Or KS < HS Then
休開始 = KS
休終了 = KE
Else
休開始 = HS
休終了 = HE
End If
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
このままでは、回答はつかないと思いますので、いくつか補足要求します。
(私が回答できる保証はありませんが)
1)質問1
>V列に半成品完了日 答えを求めたいです
>AE列に完成品完了日 答えを求めたいです
これを求める、具体的な例を書いてください。
2)質問2
このシートは1行目に見出しがあり、2行目以降にデータがあるのでしょうか。
10行目のV列に半成品完了日を求める場合は、他の列の10行目のデータを使用すればよいのですか。
3)質問3
Function 終了日時()を呼び出している箇所の具体的な記述をお願いします。
V列(例V2)に
=終了日時(・・・・)と書いていると思われますが、・・・・箇所の具体的な記述をお願いします。
AE列(例AE2)も同様にお願いします。
4)質問4
Function 終了日時()の機能を日本語で書いてください。
5)質問5
Sub 次の休憩を求める()機能を日本語で書いてください。
No.2
- 回答日時:
補足要求の追加です。
質問6)
>V列に半成品完了日 答えを求めたいです
>AE列に完成品完了日 答えを求めたいです
あなたが提示された
A列に休憩開始日 10:00:00 AM
B列に休憩終了日 10:10:00 AM
C列に休日開始日 2017/1/21
等の数値の場合にどうなるか上記の期待する結果を提示ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
VBAで文字列を数値に変換したい
-
エクセル 同じ値を探して隣の...
-
エクセルで最初のスペースまで...
-
エクセル初心者です 関数の入れ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
重複行を削除して数値を合算し...
-
エクセルの並び変えで、空白セ...
-
EXCELで 一桁の数値を二桁に
-
基準日よりも古い日付の列を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセル 同じ値を探して隣の...
-
VBAで文字列を数値に変換したい
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
[関数得意な方]教えて下さい・...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 時間帯の重複の有無
-
Excelにてある膨大なデータを管...
おすすめ情報