Excel操作(指定範囲を区切り文字列で連結した値の取得)を作ってみた
「Excel操作(指定範囲を区切り文字で連結した値の取得)」を作ってみました。
用途例
- メールアドレスのリストをカンマやセミコロンで連結
- 市外局番、市内局番、加入者番号をハイフンで連結
- 都道府県、市区町村、町名、番地、建物名、部屋番号をスペースで連結
- 年、月、日をスラッシュで連結
- 時、分、秒をコロンで連結
作ったきっかけのスレッド
命名
- Excel操作(指定範囲を区切り文字列で連結した値の取得)
ベースライブラリ
- Excel操作(範囲選択)
加工箇所
' メイン処理をコメントアウト
' worksheet.range(range).Select' 変数を初期化
result = ""delimiter = !区切り文字列!
' 指定範囲の値を区切り文字列で連結
For Each c In worksheet.range(range)
result = result & c.Text & delimiter
Next' 変数に格納(末尾の区切り文字列カット)
SetUMSVariable $連結結果$ , Left(result, Len(result) - Len(delimiter))
テスト結果
- 連結テスト.xlsx
a@a.a
b@b.b
c@c.c
- Excel操作(指定範囲を区切り文字列で連結した値の取得)
範囲:A1:A3
区切り文字列:;連結結果 → a@a.a;b@b.b;c@c.c
所感
- 区切り文字列を可変にすることで、汎用性を確保できた
- 用途をもっと見出したい
- 不安定要素はなさそう
- ホントは配列を使いたかった
- Excelのセル範囲を配列に格納しようとしたものの、イメージしたシンプルコードでは実現しないと判明
- Join(配列)にしたかったものの、末尾の区切り文字列カットで妥協
応用
- たとえば、「Excel操作(指定範囲を区切り文字列で連結した値の一括取得)」
- 行毎 or 列毎に連結結果をn個取得
- n個取得にするには、、配列を使うことになるか
- 列毎のニーズはあんまりなさそう
- TEXTJOINみたいな関数で成り立つなら、「Excel操作(数式の結果取得)」と天秤にかけることになるか
https://winactor.com/questions/?q=Excel操作(関数(範囲)の結果取得)を作ってみた
お気づきの点、お知らせください。
便乗、ウェルカムです!
この質問は解決済みのためクローズされています。
anothersolution ベストアンサーとして選択しました
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録