連続する数字は「~」で、不連続な数字は「,」で連結するユーザー定義関数(設問編)

マクロで以下のようなことが出来ないか、職場で問い合わせを受けた。
・連続する数字は「~」で繋ぎたい。
・不連続な数字は「,」で繋ぎたい。
・共通部分の表示は省略したい。

具体的には、こんな感じだ。

  • 1,2,3,4 ⇒ 1~4
  • 101,103,104,105 ⇒ 101,3~5

そこで、これを実現するユーザー定義関数に挑戦してみた。
f:id:Infoment:20191120224427p:plain

上記のような表現の是非はさておき、作成した結果がこちら。
f:id:Infoment:20191120225049g:plain

出来るには出来たが、中身はかなり大仰なものとなった。
上手く伝わるかどうか不安だが、バックトゥザフューチャーⅢで
ドクが氷一個を作った大仕掛のイメージ。

と、ここで思った。皆さんなら、どうやって作るだろう?私が難しく
考えているだけで、本当はもっと簡単にできるんじゃないだろうか。

ということで、今日はここまで。一晩寝かせて、明日「回答編」をお届けする。
自分だったらどうするか、お時間があれば挑戦してみて欲しい。

参考まで。