回答編集履歴

1

サンプルコードを追加しました。

2015/04/04 15:42

投稿

HachiyaKouya
HachiyaKouya

スコア85

test CHANGED
@@ -67,3 +67,125 @@
67
67
  他の方のコメントにもありますが、エラーが出るとかどうしても条件に該当してくれないとか、あとはExcelってセルの書式設定によって実体が違うので文字列と数値以外のデータならセルの書式設定とか通過型でもちょっと違うかもしれない。
68
68
 
69
69
  あと、使っているExcelのバージョンも書いてもらえると助かります(Officeはたまに大改修で使い方が変わったりしますが、質問者の会社の都合で古いバージョンを使い続けていることもあったりするので)。
70
+
71
+
72
+
73
+ ※追記
74
+
75
+ シートの自動選択がうまく動かない原因がよくわからないので、試しにまるっと作ってみました。
76
+
77
+ 以下のコードはG30のセルを使っていませんが、問題ありませんでした。
78
+
79
+
80
+
81
+ > Cells(fRange.Row, fRange.Column).Select '見つかったセルを選択する
82
+
83
+ ここも
84
+
85
+ > fRange.Select '見つかったセルを選択する
86
+
87
+ に変えています。
88
+
89
+
90
+
91
+ ```lang-<Excel VBA>
92
+
93
+ Sub serch()
94
+
95
+
96
+
97
+ Dim fKey As Date '検索する文字
98
+
99
+ Dim fRange As Range '検索されたセル
100
+
101
+
102
+
103
+ Dim s1 As Worksheet
104
+
105
+ Dim s4 As Worksheet
106
+
107
+ Dim s5 As Worksheet
108
+
109
+ Dim s6 As Worksheet
110
+
111
+ Dim s7 As Worksheet
112
+
113
+ Dim s8 As Worksheet
114
+
115
+ Dim s9 As Worksheet
116
+
117
+ Dim s10 As Worksheet
118
+
119
+ Dim s11 As Worksheet
120
+
121
+ Dim s12 As Worksheet
122
+
123
+
124
+
125
+ Set s1 = Sheets("ルール")
126
+
127
+ Set s4 = Sheets("4月")
128
+
129
+ Set s5 = Sheets("5月")
130
+
131
+ Set s6 = Sheets("6月")
132
+
133
+ Set s7 = Sheets("7月")
134
+
135
+ Set s8 = Sheets("8月")
136
+
137
+ Set s9 = Sheets("9月")
138
+
139
+ Set s10 = Sheets("10月")
140
+
141
+ Set s11 = Sheets("11月")
142
+
143
+ Set s12 = Sheets("12月")
144
+
145
+
146
+
147
+
148
+
149
+ 'Range("G30").ClearContents
150
+
151
+
152
+
153
+ 'Range("G30").Value = Range("F30").Value 'F30にはTODAY関数が入っており、そのvalueだけ抜く
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ ' s4.Select
162
+
163
+ Sheets(StrConv(Month(s1.Range("F30").Value), vbWide) & "月").Select
164
+
165
+
166
+
167
+ fKey = s1.Range("F30")
168
+
169
+ Set fRange = ActiveSheet.Cells.Find(What:=fKey, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
170
+
171
+ If (fRange Is Nothing) Then
172
+
173
+ MsgBox (s1.Range("F30").Value & "はありませんでした")
174
+
175
+ Else
176
+
177
+ fRange.Select '見つかったセルを選択する
178
+
179
+ End If
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+ End Sub
188
+
189
+
190
+
191
+ ```