回答編集履歴

2

コード追加

2018/05/30 05:31

投稿

hatena19
hatena19

スコア33699

test CHANGED
@@ -94,8 +94,50 @@
94
94
 
95
95
 
96
96
 
97
+ 追記2
98
+
99
+ ---
100
+
97
101
  さらに、言えば、参照範囲の番号列を検索(`WorksheetFunction.Match`等で)するようにすれば、
98
102
 
99
103
  よりシンプルに記述できますし、参照範囲の番号が変更されても
100
104
 
101
105
  コードを変更する必要はなくなり、より実用的です。
106
+
107
+
108
+
109
+ ```vba
110
+
111
+ Sub if_jirei_2()
112
+
113
+ Dim r As Long
114
+
115
+ Select Case Range("B3").Value
116
+
117
+ Case ""
118
+
119
+ Range("C6:E6").ClearContents
120
+
121
+ Case Else
122
+
123
+ On Error Resume Next
124
+
125
+ r = WorksheetFunction.Match(Range("B3"), Range("G6:G9"), 1)
126
+
127
+ On Error GoTo 0
128
+
129
+ If r = 0 Then
130
+
131
+ MsgBox Range("G6").Value & "以上の数値を入力してください。"
132
+
133
+ Else
134
+
135
+ Range("C6:E6").Value = Range("H5:J5").Offset(r).Value
136
+
137
+ End If
138
+
139
+ End Select
140
+
141
+ End Sub
142
+
143
+ ```

1

コード追加

2018/05/30 05:31

投稿

hatena19
hatena19

スコア33699

test CHANGED
@@ -53,3 +53,49 @@
53
53
  End Sub
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ 追記
60
+
61
+ ---
62
+
63
+ if_jirei_1は、Select Caseを使った方がシンプルで読みやすく記述できます。
64
+
65
+ ```vba
66
+
67
+ Sub if_jirei_1()
68
+
69
+ Select Case Range("B3").Value
70
+
71
+ Case ""
72
+
73
+ Range("C6:E6").ClearContents
74
+
75
+ Case 100 To 499
76
+
77
+ Range("C6:E6").Value = Range("H6:J6").Value
78
+
79
+ Case 500 To 999
80
+
81
+ Range("C6:E6").Value = Range("H7:J7").Value
82
+
83
+ Case Else
84
+
85
+ MsgBox "100以上999以下の数値を入力してください。"
86
+
87
+ Range("C6:E6").ClearContents
88
+
89
+ End Select
90
+
91
+ End Sub
92
+
93
+ ```
94
+
95
+
96
+
97
+ さらに、言えば、参照範囲の番号列を検索(`WorksheetFunction.Match`等で)するようにすれば、
98
+
99
+ よりシンプルに記述できますし、参照範囲の番号が変更されても
100
+
101
+ コードを変更する必要はなくなり、より実用的です。