回答編集履歴
1
コード追加
answer
CHANGED
@@ -10,4 +10,29 @@
|
|
10
10
|
|
11
11
|
現状のテキストボックスのコントロールソースを下記のように変更します。
|
12
12
|
|
13
|
-
`=IIf([P1]>0 And [P2]>[P1],Mid([係名],[P1]+1,[P2]-[P1]-1),Left([係名],InStr(1,[係名] & "部","部",0)))`
|
13
|
+
`=IIf([P1]>0 And [P2]>[P1],Mid([係名],[P1]+1,[P2]-[P1]-1),Left([係名],InStr(1,[係名] & "部","部",0)))`
|
14
|
+
|
15
|
+
同様の処理が他にもあったり、変更の可能性があるなら、ユーザー定義関数を作成しておくといいでしょう。
|
16
|
+
標準モジュールに下記の関数を作成します。
|
17
|
+
|
18
|
+
```vba
|
19
|
+
Public Function get係名(v As Variant) As String
|
20
|
+
|
21
|
+
If IsNull(v) Then Exit Function
|
22
|
+
|
23
|
+
Dim P1 As Long: P1 = InStr(1, v, "(", vbBinaryCompare)
|
24
|
+
If P1 > 0 Then
|
25
|
+
Dim P2 As Long: P2 = InStr(1, v, ")", vbBinaryCompare)
|
26
|
+
If P1 < P2 Then
|
27
|
+
get係名 = Mid(v, P1 + 1, P2 - P1 - 1)
|
28
|
+
Exit Function
|
29
|
+
End If
|
30
|
+
End If
|
31
|
+
|
32
|
+
get係名 = Left(v, InStr(1, v & "部", "部", vbBinaryCompare))
|
33
|
+
|
34
|
+
End Function
|
35
|
+
```
|
36
|
+
テキストボックスのコントロールソースに下記の式を設定
|
37
|
+
|
38
|
+
`=get係名([係名])`
|