質問するログイン新規登録

回答編集履歴

1

サンプルマクロ追加

2020/01/08 04:21

投稿

ttyp03
ttyp03

スコア17002

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
+ マクロに関して全くの初心者で何言ってるのかわからなかったら、調べながらやってみてください。