[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字の結合で空白セルを無視したい』(Kay)
こんにちは、質問失礼します。
B3-200に入るセルの文字をC3で結合したく、以下マクロを登録しました。
Sub セルの文字を結合()
Dim 結合文字 As String Dim 範囲 As Range 結合文字 = "" For Each 範囲 In Range("B3:B200") 結合文字 = 結合文字 & 範囲.Text & " ; " Next 範囲 Range("C3").Value = 結合文字 End Sub
結合の際に”;”を入れるようにしています。
ここで問題なのが、結合対象のセルはMaxで200で変動する場合があります。
(100までしか文字が入らない場合もある)
その場合でも”;”の文字のみ結合されてしまうのですが、空白セルを無視することはできますでしょうか?(もしくは文字が入っている行のみ結合?)
VBA初心者のため初歩的な質問で申し訳ありませんが、ご教示いただけると幸いです。何卒よろしくお願いします。
< 使用 Excel:Office365、使用 OS:Windows10 >
If 範囲.Value <> "" Then 処理 (通りすがり) 2021/04/23(金) 11:52
2016以降でないので未確認で申し訳ないのですが、 365であればWorksheetFunctionからTEXTJOIN関数を使えば希望の処理が可能かと思います。 http://officetanaka.net/excel/function/function/concat.htm (*) 2021/04/23(金) 11:52
あるいはこういうことかな?
For Each 範囲 In Range("B3:B200") If 範囲.Value <> "" Then If 結合文字 <> "" Then 結合文字 = 結合文字 & " ; " 結合文字 = 結合文字 & 範囲.Text Next 範囲 (通りすがり) 2021/04/23(金) 11:55
おお、TEXTJOIN関数は空白セルを無視してくれるのか。 当方Excel2007 早く乗り換えたい・・・。 (通りすがり) 2021/04/23(金) 11:57
*さんの字方法であれば Sub tst() Range("C3").Value = WorksheetFunction.TextJoin(";", True, Range("B3:B200")) End Sub (ねむねむ) 2021/04/23(金) 11:59
最終行取得は↓
Range("B3").End(xlDown).Row
(az) 2021/04/23(金) 11:59
そもそもC3セルにTEXTJOIN関数を入れるのではだめなのだろうか? (ねむねむ) 2021/04/23(金) 12:03
この短い時間の中でたくさんの方々にアドバイスいただき、本当に助かりました。
ありがとうございますした。
(Kay) 2021/04/23(金) 12:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.