回答編集履歴

1

コード追記

2019/10/24 14:19

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- あと、複数セルを選択したときとか、いろいろな状況を考慮する必要があります。
17
+ あと、複数セルを選択したときとか、複数セルを選択して削除したときとか、いろいろな状況を考慮する必要があります。
18
18
 
19
19
 
20
20
 
@@ -93,3 +93,91 @@
93
93
  End Sub
94
94
 
95
95
  ```
96
+
97
+
98
+
99
+ ---
100
+
101
+ > これを1シートの中に複数セル、入力例をそれぞれ変えて設置したいのですが、
102
+
103
+
104
+
105
+ これを考慮してコードを修正してみました。
106
+
107
+
108
+
109
+ シートモジュール
110
+
111
+ ```vba
112
+
113
+ Option Explicit
114
+
115
+
116
+
117
+ Private Sub Worksheet_Activate()
118
+
119
+ Call Set_Placeholder
120
+
121
+ End Sub
122
+
123
+
124
+
125
+ Private Sub Worksheet_SelectionChange(ByVal Target As Range)
126
+
127
+ Call Set_Placeholder
128
+
129
+ End Sub
130
+
131
+
132
+
133
+ Private Sub Set_Placeholder(ParamArray aRng_Placeholder() As Variant)
134
+
135
+ Call Rng_Placeholder(Range("D4:F4"), "[入力例]10/9")
136
+
137
+ Call Rng_Placeholder(Range("A4"), "[入力例]山田 太郎")
138
+
139
+ Call Rng_Placeholder(Range("B4"), "[入力例]ヤマダ タロウ")
140
+
141
+ End Sub
142
+
143
+
144
+
145
+ Private Sub Rng_Placeholder(Rng As Range, Placeholder As String)
146
+
147
+ Application.EnableEvents = False
148
+
149
+ Dim c As Range
150
+
151
+ For Each c In Rng
152
+
153
+ If c.Value = "" Then
154
+
155
+ c.Value = Placeholder
156
+
157
+ c.Font.ColorIndex = 16
158
+
159
+ End If
160
+
161
+ Next
162
+
163
+ If Not Intersect(ActiveCell, Rng) Is Nothing Then
164
+
165
+ With ActiveCell
166
+
167
+ If .Value = Placeholder Then
168
+
169
+ .Value = ""
170
+
171
+ .Font.ColorIndex = 0
172
+
173
+ End If
174
+
175
+ End With
176
+
177
+ End If
178
+
179
+ Application.EnableEvents = True
180
+
181
+ End Sub
182
+
183
+ ```