teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

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

2015/04/04 15:42

投稿

HachiyaKouya
HachiyaKouya

スコア85

answer CHANGED
@@ -32,4 +32,65 @@
32
32
 
33
33
 
34
34
  他の方のコメントにもありますが、エラーが出るとかどうしても条件に該当してくれないとか、あとはExcelってセルの書式設定によって実体が違うので文字列と数値以外のデータならセルの書式設定とか通過型でもちょっと違うかもしれない。
35
- あと、使っているExcelのバージョンも書いてもらえると助かります(Officeはたまに大改修で使い方が変わったりしますが、質問者の会社の都合で古いバージョンを使い続けていることもあったりするので)。
35
+ あと、使っているExcelのバージョンも書いてもらえると助かります(Officeはたまに大改修で使い方が変わったりしますが、質問者の会社の都合で古いバージョンを使い続けていることもあったりするので)。
36
+
37
+ ※追記
38
+ シートの自動選択がうまく動かない原因がよくわからないので、試しにまるっと作ってみました。
39
+ 以下のコードはG30のセルを使っていませんが、問題ありませんでした。
40
+
41
+ > Cells(fRange.Row, fRange.Column).Select '見つかったセルを選択する
42
+ ここも
43
+ > fRange.Select '見つかったセルを選択する
44
+ に変えています。
45
+
46
+ ```lang-<Excel VBA>
47
+ Sub serch()
48
+
49
+ Dim fKey As Date '検索する文字
50
+ Dim fRange As Range '検索されたセル
51
+
52
+ Dim s1 As Worksheet
53
+ Dim s4 As Worksheet
54
+ Dim s5 As Worksheet
55
+ Dim s6 As Worksheet
56
+ Dim s7 As Worksheet
57
+ Dim s8 As Worksheet
58
+ Dim s9 As Worksheet
59
+ Dim s10 As Worksheet
60
+ Dim s11 As Worksheet
61
+ Dim s12 As Worksheet
62
+
63
+ Set s1 = Sheets("ルール")
64
+ Set s4 = Sheets("4月")
65
+ Set s5 = Sheets("5月")
66
+ Set s6 = Sheets("6月")
67
+ Set s7 = Sheets("7月")
68
+ Set s8 = Sheets("8月")
69
+ Set s9 = Sheets("9月")
70
+ Set s10 = Sheets("10月")
71
+ Set s11 = Sheets("11月")
72
+ Set s12 = Sheets("12月")
73
+
74
+
75
+ 'Range("G30").ClearContents
76
+
77
+ 'Range("G30").Value = Range("F30").Value 'F30にはTODAY関数が入っており、そのvalueだけ抜く
78
+
79
+
80
+
81
+ ' s4.Select
82
+ Sheets(StrConv(Month(s1.Range("F30").Value), vbWide) & "月").Select
83
+
84
+ fKey = s1.Range("F30")
85
+ Set fRange = ActiveSheet.Cells.Find(What:=fKey, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
86
+ If (fRange Is Nothing) Then
87
+ MsgBox (s1.Range("F30").Value & "はありませんでした")
88
+ Else
89
+ fRange.Select '見つかったセルを選択する
90
+ End If
91
+
92
+
93
+
94
+ End Sub
95
+
96
+ ```