回答編集履歴
1
サンプルマクロ追加
answer
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
1
|
回答になっていませんが、Excel2010では無理と思います。
|
|
2
2
|
Excel2016以降であればTEXTJOIN関数が使えますが、2010にはないので無理ですね。
|
|
3
|
-
解決策としてはTEXTJOIN相当の関数をマクロで実装するのが手っ取り早いと思いますが、マクロの使用を望んでいない以上できないと思います。
|
|
3
|
+
解決策としてはTEXTJOIN相当の関数をマクロで実装するのが手っ取り早いと思いますが、マクロの使用を望んでいない以上できないと思います。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
マクロを使ってみたいということなので、作ってみました。
|
|
7
|
+
下記のコードをVBEの標準モジュールに貼り付けてください。
|
|
8
|
+
```VBA
|
|
9
|
+
Function NAMEJOIN(src As Range) As String
|
|
10
|
+
Dim r As Range
|
|
11
|
+
Const s = "、"
|
|
12
|
+
NAMEJOIN = ""
|
|
13
|
+
For Each r In src
|
|
14
|
+
If r.Offset(0, 1).Value = "出" Then
|
|
15
|
+
NAMEJOIN = NAMEJOIN & r.Value & s
|
|
16
|
+
End If
|
|
17
|
+
Next
|
|
18
|
+
If Right(NAMEJOIN, 1) = s Then
|
|
19
|
+
NAMEJOIN = Left(NAMEJOIN, Len(NAMEJOIN) - 1)
|
|
20
|
+
End If
|
|
21
|
+
End Function
|
|
22
|
+
```
|
|
23
|
+
ワークシートの方では次のように上記関数を指定します。
|
|
24
|
+
```EXCEL
|
|
25
|
+
=NAMEJOIN(A1:A100)
|
|
26
|
+
```
|
|
27
|
+
サンプルなので細かい処理が足りていないかもしれませんし、速度も遅いかもしれません。
|
|
28
|
+
お試しください。
|
|
29
|
+
マクロに関して全くの初心者で何言ってるのかわからなかったら、調べながらやってみてください。
|