Note: The other languages of the website are Google-translated. Back to English

Excelでセル列を連結してテキストの色を維持するにはどうすればよいですか?

ご存知のとおり、セルの列をXNUMXつの列に連結または結合すると、セルの書式設定(テキストのフォントの色、数値の書式設定など)が失われます。 この記事では、セルの列をXNUMXつに結合し、Excelでテキストの色をできるだけ簡単に保つためのいくつかの秘訣を紹介します。

セル列を連結し、VBAコードでテキストフォントの色を維持します


セル列を連結し、VBAコードでテキストフォントの色を維持します

Excelでこのタスクを完了するには、次のVBAコードを使用するとよい場合があります。次のようにしてください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

VBAコード:セル列を連結し、テキストの色を維持します:

Sub MergeFormatCell()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xRgEachRow As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim I As Integer
    Dim xRgLen As Integer
    Dim xSRgRows As Integer
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Please select cell columns to concatenate:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSRgRows = xSRg.Rows.Count
    Set xDRg = Application.InputBox("Please select cells to output the result:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRgRows
        xRgLen = 1
        With xDRg.Offset(I - 1)
            .Value = vbNullString
            .ClearFormats
            Set xRgEachRow = xSRg(1).Offset(I - 1).Resize(1, xSRg.Columns.Count)
            For Each xRgEach In xRgEachRow
                .Value = .Value & Trim(xRgEach.Value) & " "
            Next
            For Each xRgEach In xRgEachRow
                xRgVal = xRgEach.Value
                With .Characters(xRgLen, Len(Trim(xRgVal))).Font
                .Name = xRgEach.Font.Name
                .FontStyle = xRgEach.Font.FontStyle
                .Size = xRgEach.Font.Size
                .Strikethrough = xRgEach.Font.Strikethrough
                .Superscript = xRgEach.Font.Superscript
                .Subscript = xRgEach.Font.Subscript
                .OutlineFont = xRgEach.Font.OutlineFont
                .Shadow = xRgEach.Font.Shadow
                .Underline = xRgEach.Font.Underline
                .ColorIndex = xRgEach.Font.ColorIndex
                End With
                xRgLen = xRgLen + Len(Trim(xRgVal)) + 1
            Next
        End With
    Next I
End Sub

3。 次に、 F5 このコードを実行するためのキーを押すと、テキストの色と組み合わせるデータ範囲を選択するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

4。 そして、 OK、別のダイアログボックスが表示されます。組み合わせた結果を出力するセルを選択してください。スクリーンショットを参照してください。

5。 次に、をクリックします OK ボタンをクリックすると、次のスクリーンショットのように、テキストの色を失うことなく列が連結されます。

注意:結合する必要のあるデータに数値が含まれている場合、マクロコードは正しく機能しません。


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (9)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
このコードは本当にうまく機能します。 しかし、テキストの前後にスペースを追加するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
このメソッドは、xRgLenが255より高くなるまでうまく機能します。
このパラメータはバイトのようです:-(
この制限をどのように克服できますか?
このコメントは、サイトのモデレーターによって最小化されました
Fantásticalamacrodeconcatenar cadena de texto conservando formatodeorigen。 En mi caso no funcionaba con F5、pero enlapestañamacro、modificar y opciones me permit e entrar el modo de ejecucion con CTRL + letra y funcionademaravilla。 Muchasgracias。
このコメントは、サイトのモデレーターによって最小化されました
Habríamaneradehacerloconnúmeros?
このコメントは、サイトのモデレーターによって最小化されました
コードをありがとう。
テキストに「()」が含まれている場合、たとえば「tomate(tomates)」。 それもうまくいきません。 「()」を操作するために変更するものはありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはラー、
元気ですか? テキストに「()」が含まれている場合、VBAコードを変更する必要はありません。 スクリーンショットをご覧ください。「トマト(トマト)」というテキストは、他のセル列とXNUMXつの列にうまく組み合わせることができます。 それがあなたを助けるかもしれないことを願っています。
敬具
マンディ
このコメントは、サイトのモデレーターによって最小化されました
コードをありがとう!
変更があった場合、連結列を自動的に更新できますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、キャシーさん
申し訳ありませんが、現時点ではこれを行う良い方法はありません。セルの内容を変更した後、コードを再度実行する必要があります。 😂
ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
わかりました、返信ありがとうございます
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護