質問編集履歴
3
aaaaaaaaaaaaaaaa
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
aaaaaaaaaaaaaa
|
test
CHANGED
@@ -1,70 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
集計表(画像1枚目)の氏名の横にあるそれぞれの月のセルを選択すると、一覧表(画像2枚目)に記載されている、その月にその人が担当している月別工数、顧客企業名、案件名、開始日、終了日をメッセージボックスに出力できるようにしたいです。
|
4
|
-
|
5
|
-
イメージとしては画像3枚目のような形で、複数当てはまるものがある場合、改行してその数だけ表示をさせます。
|
6
|
-
|
7
|
-
はじめてVBAを触り、身近に質問できる方もおらず数日調べ続けても詰まっているのでこちらで質問させていただきます。
|
8
|
-
|
9
|
-
拙い文章、基本も怪しいコードですがよろしくお願いいたします。
|
10
|
-
|
11
|
-
【集計表】
|
12
|
-
|
13
|
-
|
14
|
-
【一覧表】
|
15
|
-
|
16
|
-
|
17
|
-
【出力のイメージ】
|
18
|
-
|
19
|
-
|
20
|
-
### 発生している問題・エラーメッセージ
|
21
|
-
|
22
|
-
|
23
|
-
一覧表(画像2枚目)の氏名、月別工数、顧客企業名、案件名、開始、終了日項目の情報を集計表(画像1枚目)の選択した月のメッセージボックスに表示させたいが、調べても実現できず詰まっております…
|
24
|
-
|
25
|
-
|
26
|
-
### 該当のソースコード
|
27
|
-
|
28
|
-
```VBA
|
29
|
-
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
|
30
|
-
|
31
|
-
|
32
|
-
'氏名に関する変数
|
33
|
-
Dim nameSearch As Range, nameFind As Range, nameNext As Range
|
34
|
-
|
35
|
-
Set nameSearch = Sheets("一覧表").Range("B:B")
|
36
|
-
|
37
|
-
Set nameFind = nameSearch.Find(What:=ActiveCell.Offset(0, -1), LookAt:=xlPart)
|
38
|
-
|
39
|
-
|
40
|
-
Set nameNext = nameFind
|
41
|
-
|
42
|
-
|
43
|
-
If Not Intersect(Target, Range("C:C")) Is Nothing Then
|
44
|
-
Do While Not nameFind Is Nothing
|
45
|
-
Debug.Print nameFind.Row
|
46
|
-
|
47
|
-
Set nameFind = nameNext.FindNext(nameFind)
|
48
|
-
|
49
|
-
If nameFind.Address = nameNext.Address Then
|
50
|
-
MsgBox nameFind & " | " & Sheets("一覧表").Range("C4") & " | " & Sheets("一覧表").Range("D4") & " | " & Sheets("一覧表").Range("E4") & " | " & Sheets("一覧表").Range("F4") & " | " & Sheets("一覧表").Range("G4")
|
51
|
-
|
52
|
-
|
53
|
-
'BCセルの氏名の開始が2021/7/1以下、終了日が2021/7/1以上の顧客企業名、工数/月、案件名、開始、終了を出力する。
|
54
|
-
Exit Do
|
55
|
-
End If
|
56
|
-
|
57
|
-
Loop
|
58
|
-
|
59
|
-
End If
|
60
|
-
End Sub
|
61
|
-
```
|
62
|
-
|
63
|
-
### 試したこと
|
64
|
-
Findで一致した情報を探し、Whileで複数表示させることができるのではないかと考え、試験的に上記のコードを記述しています。
|
65
|
-
結果は画像3枚目のようになっています。
|
66
|
-
|
67
|
-
|
68
|
-
### 補足情報(FW/ツールのバージョンなど)
|
69
|
-
|
70
|
-
足りない情報等ご指摘いただければ追加していきます。
|
1
|
+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2
画像の編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,139 +1,70 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
集計表(画像1枚目)の氏名の横にあるそれぞれの月のセルを選択すると、一覧表(画像2枚目)に記載されている、その月にその人が担当している月別工数、顧客企業名、案件名、開始日、終了日をメッセージボックスに出力できるようにしたいです。
|
6
4
|
|
7
|
-
|
8
|
-
|
9
5
|
イメージとしては画像3枚目のような形で、複数当てはまるものがある場合、改行してその数だけ表示をさせます。
|
10
|
-
|
11
|
-
|
12
6
|
|
13
7
|
はじめてVBAを触り、身近に質問できる方もおらず数日調べ続けても詰まっているのでこちらで質問させていただきます。
|
14
8
|
|
15
|
-
|
16
|
-
|
17
9
|
拙い文章、基本も怪しいコードですがよろしくお願いいたします。
|
18
10
|
|
19
|
-
|
20
|
-
|
21
11
|
【集計表】
|
22
|
-
|
23
|
-
![イメージ説明](2f04ab43c385fb3433cb59f30ccf1f80.png)
|
24
|
-
|
25
12
|
|
26
13
|
|
27
14
|
【一覧表】
|
28
15
|
|
29
|
-
![イメージ説明](69f4acefbe788c8b33d523051371c649.png)
|
30
|
-
|
31
|
-
|
32
16
|
|
33
17
|
【出力のイメージ】
|
34
|
-
|
35
|
-
![イメージ説明](cf6e7e6cef0679e8bd4315a3434061ef.png)
|
36
|
-
|
37
18
|
|
38
19
|
|
39
20
|
### 発生している問題・エラーメッセージ
|
40
21
|
|
41
22
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
23
|
一覧表(画像2枚目)の氏名、月別工数、顧客企業名、案件名、開始、終了日項目の情報を集計表(画像1枚目)の選択した月のメッセージボックスに表示させたいが、調べても実現できず詰まっております…
|
46
|
-
|
47
|
-
|
48
|
-
|
49
24
|
|
50
25
|
|
51
26
|
### 該当のソースコード
|
52
27
|
|
53
|
-
|
54
|
-
|
55
28
|
```VBA
|
56
|
-
|
57
29
|
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
|
58
30
|
|
59
31
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
32
|
'氏名に関する変数
|
64
|
-
|
65
33
|
Dim nameSearch As Range, nameFind As Range, nameNext As Range
|
66
|
-
|
67
34
|
|
68
|
-
|
69
35
|
Set nameSearch = Sheets("一覧表").Range("B:B")
|
70
|
-
|
71
36
|
|
72
|
-
|
73
37
|
Set nameFind = nameSearch.Find(What:=ActiveCell.Offset(0, -1), LookAt:=xlPart)
|
74
|
-
|
75
38
|
|
76
|
-
|
77
39
|
|
78
|
-
|
79
40
|
Set nameNext = nameFind
|
80
|
-
|
81
41
|
|
82
|
-
|
83
42
|
|
84
|
-
|
85
43
|
If Not Intersect(Target, Range("C:C")) Is Nothing Then
|
86
|
-
|
87
44
|
Do While Not nameFind Is Nothing
|
88
|
-
|
89
45
|
Debug.Print nameFind.Row
|
90
|
-
|
91
46
|
|
92
|
-
|
93
47
|
Set nameFind = nameNext.FindNext(nameFind)
|
94
|
-
|
95
48
|
|
96
|
-
|
97
49
|
If nameFind.Address = nameNext.Address Then
|
98
|
-
|
99
50
|
MsgBox nameFind & " | " & Sheets("一覧表").Range("C4") & " | " & Sheets("一覧表").Range("D4") & " | " & Sheets("一覧表").Range("E4") & " | " & Sheets("一覧表").Range("F4") & " | " & Sheets("一覧表").Range("G4")
|
100
|
-
|
101
51
|
|
102
|
-
|
103
52
|
|
104
|
-
|
105
53
|
'BCセルの氏名の開始が2021/7/1以下、終了日が2021/7/1以上の顧客企業名、工数/月、案件名、開始、終了を出力する。
|
106
|
-
|
107
54
|
Exit Do
|
108
|
-
|
109
55
|
End If
|
110
|
-
|
111
56
|
|
112
|
-
|
113
57
|
Loop
|
114
|
-
|
115
58
|
|
116
|
-
|
117
59
|
End If
|
118
|
-
|
119
60
|
End Sub
|
120
|
-
|
121
61
|
```
|
122
62
|
|
123
|
-
|
124
|
-
|
125
63
|
### 試したこと
|
126
|
-
|
127
64
|
Findで一致した情報を探し、Whileで複数表示させることができるのではないかと考え、試験的に上記のコードを記述しています。
|
128
|
-
|
129
65
|
結果は画像3枚目のようになっています。
|
130
|
-
|
131
|
-
|
132
|
-
|
133
66
|
|
134
67
|
|
135
68
|
### 補足情報(FW/ツールのバージョンなど)
|
136
69
|
|
137
|
-
|
138
|
-
|
139
70
|
足りない情報等ご指摘いただければ追加していきます。
|
1
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
選択したセルの人が持っている、その月の情報をメッセージボックスに出力したい
|
1
|
+
【VBA】選択したセルの人が持っている、その月の情報をメッセージボックスに出力したい
|
test
CHANGED
File without changes
|