回答編集履歴

5

 

2024/05/12 01:32

投稿

kotori_a
kotori_a

スコア781

test CHANGED
@@ -1,4 +1,4 @@
1
- 1行目から100行目まで、データが入っているとした場合は下記のようになります
1
+ 1行目から100行目まで、データが入っているとした場合は下記のようになります
2
2
  要件が明らかにされていないところはこちらで勝手に補っています。
3
3
  "IF関数"のところは好みの数式を入れてください。
4
4
  ```
@@ -10,7 +10,7 @@
10
10
  k = 0
11
11
  For i = 1 To 100
12
12
  For j = 1 To n(i, 3)
13
- '開始日行特有の処理
13
+ '開始日行特有の処理
14
14
  If (j = 1) Then s(k, 4) = n(i, 2): s(k, 5) = n(i, 3)
15
15
 
16
16
  s(k, 0) = n(i, 1) + j - 1
@@ -32,7 +32,7 @@
32
32
  ```
33
33
  # コメント内の要件変更に対応した追記
34
34
 
35
- (2024/05/12 08:29時点のコメントより引用
35
+ (2024/05/12 08:29のコメント)
36
36
  > 施設名 予約サイト名は、2行目と3行目にも入れたいです。
37
37
  > 下記のようになることを希望しております。
38
38
  > A B C D E F G H

4

追加

2024/05/12 01:24

投稿

kotori_a
kotori_a

スコア781

test CHANGED
@@ -30,6 +30,43 @@
30
30
  y = "=text(datevalue(""" & a & """),""aaa"")"
31
31
  End Function
32
32
  ```
33
+ # コメント内の要件変更に対応した追記
33
34
 
34
- なお、質問者さん学習のことを思って、ブラッシュアップの余地を多数残してあます。回答をただ鵜呑みにせず、ぜひいろいろ調べてみてください。
35
- ~~(丸投げの質問で及び腰なってる他の回答者の方が「こんなコードじゃ我慢ならん」と、重い腰を上げてブラッシュアップの回答を投げてくれる可能性もありまが(むしろそういう焚き付けを狙っている))~~
35
+ (2024/05/12 08:29時点コメントよ引用)
36
+ > 施設名 予約サイト名は、2行目と3行目も入れた
37
+ > 下記のようになることを希望しております。
38
+ > A B C D E F G H
39
+ > 施設名 予約サイト名 2024/1/1 祝 火 IF関数 2024/1/4 3
40
+ > 施設名 予約サイト名 2024/1/2 火 水 IF関数
41
+ > 施設名 予約サイト名 2024/1/3 水 木 
42
+
43
+ ```
44
+ Sub x()
45
+ Dim s(100, 8)
46
+ l = Split("2024/1/1,2024/1/8,2024/2/11,2024/2/12,2024/2/23,2024/3/20,2024/4/29,2024/5/3,2024/5/4,2024/5/5,2024/5/6,2024/7/15,2024/8/11,2024/8/12,2024/9/16,2024/9/22,2024/9/23,2024/10/14,2024/11/3,2024/11/4,2024/11/23", ",")
47
+ n = ActiveSheet.Range("A1:H100").Value
48
+ k = 0
49
+ For i = 1 To 100
50
+ For j = 1 To n(i, 5)
51
+ '開始日の行特有の処理
52
+ If (j = 1) Then s(k, 6) = n(i, 4): s(k, 7) = n(i, 5)
53
+ s(k, 0) = n(i, 1)
54
+ s(k, 1) = n(i, 2)
55
+ s(k, 2) = n(i, 3) + j - 1
56
+ s(k, 3) = y(s(k, 2), l)
57
+ s(k, 4) = y(s(k, 2) + 1, l)
58
+ s(k, 5) = "IF関数"
59
+ k = k + 1
60
+ Next
61
+ Next
62
+ ActiveSheet.Range("A1:H100") = s
63
+ End Sub
64
+
65
+ Provate Function y(a, l)
66
+ For Each m In l
67
+ If DateValue(m) = DateValue(a) Then y = "祝": Exit Function
68
+ Next
69
+ y = "=text(datevalue(""" & a & """),""aaa"")"
70
+ End Function
71
+ ```
72
+

3

 

2024/05/11 04:52

投稿

kotori_a
kotori_a

スコア781

test CHANGED
@@ -1,4 +1,5 @@
1
1
  1行目から100行目まで、データが入っているとした場合は下記のようになります。
2
+ 要件が明らかにされていないところはこちらで勝手に補っています。
2
3
  "IF関数"のところは好みの数式を入れてください。
3
4
  ```
4
5
  Sub x()

2

 

2024/05/11 04:51

投稿

kotori_a
kotori_a

スコア781

test CHANGED
@@ -22,7 +22,7 @@
22
22
  ActiveSheet.Range("A1:F100") = s
23
23
  End Sub
24
24
 
25
- Provate Function y(a, l)
25
+ Private Function y(a, l)
26
26
  For Each m In l
27
27
  If DateValue(m) = DateValue(a) Then y = "祝": Exit Function
28
28
  Next

1

 

2024/05/11 04:51

投稿

kotori_a
kotori_a

スコア781

test CHANGED
@@ -22,7 +22,7 @@
22
22
  ActiveSheet.Range("A1:F100") = s
23
23
  End Sub
24
24
 
25
- Function y(a, l)
25
+ Provate Function y(a, l)
26
26
  For Each m In l
27
27
  If DateValue(m) = DateValue(a) Then y = "祝": Exit Function
28
28
  Next