VBAの話。わたしはこれまで、VBAでは配列を受けることができるデータ型はvariant型だけだと思い込んでいたのですが
ちゃんと宣言した変数を動的配列にしておけば受けることできたんですね、配列(-_-;。例としては↓のような感じ。
お仕事で同僚が作ったマクロを用い、割と大掛かりな名簿の整理をする機会があって、作業をするだけじゃなく、そのマクロを視覚障害の自身が使いやすいようにカスタマイズしていく中で偶然知りました(笑)。
いやほら、だって「VBAでは配列を返す関数はvariant型で受ける」みたいな解説をしている記事が多い(ような気がする)から。…ま、それでもきちんと、よーく考えたら「そこ」にちゃんと辿り着くはずなんですけどねぇ。
どうやら長年の習慣で「配列を返す関数はvariant型の変数で受ける」という固定観念がこびりついてしまっていたようで…。
'文字列型の変数でSplit関数が返す配列を受ける
Sub SplitTest()
Const CstMsg As String = "あ、い、う、え、お"
Const SYMBOL As String = "、"
Dim ws_s() As String, buf As String
ws_s = Split(CstMsg, SYMBOL)
buf = Join(ws_s, SYMBOL)
MsgBox buf, vbInformation
End Sub
ちゃんと宣言した変数を動的配列にしておけば受けることできたんですね、配列(-_-;。例としては↓のような感じ。
お仕事で同僚が作ったマクロを用い、割と大掛かりな名簿の整理をする機会があって、作業をするだけじゃなく、そのマクロを視覚障害の自身が使いやすいようにカスタマイズしていく中で偶然知りました(笑)。
いやほら、だって「VBAでは配列を返す関数はvariant型で受ける」みたいな解説をしている記事が多い(ような気がする)から。…ま、それでもきちんと、よーく考えたら「そこ」にちゃんと辿り着くはずなんですけどねぇ。
どうやら長年の習慣で「配列を返す関数はvariant型の変数で受ける」という固定観念がこびりついてしまっていたようで…。
'文字列型の変数でSplit関数が返す配列を受ける
Sub SplitTest()
Const CstMsg As String = "あ、い、う、え、お"
Const SYMBOL As String = "、"
Dim ws_s() As String, buf As String
ws_s = Split(CstMsg, SYMBOL)
buf = Join(ws_s, SYMBOL)
MsgBox buf, vbInformation
End Sub