回答編集履歴
1
コード追記
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
|
+
```
|