列のすべてのセルに文字列を連結するにはどうすればよいでしょうか (インプレース)?

列のすべてのセルに文字列を連結するにはどうすればよいでしょうか (インプレース)?

列のすべてのセルにテキストを追加するだけですが、それをインプレースで実行したいと思います。つまり、同じ列を新しい値で更新します。

たとえば、次のような列があるとします。

1つの
b

私は手に入れたい:

新しい
b 新しい

Bの最初のセルでドラッグして実行できることはわかっています=A1&" new"(その後、列Aを列Bで生成された値で上書きします)。しかし、私が探しているのは所定の位置に補助列を使用せず、単に列 A を更新するソリューション。

できれば VBA を使用しないソリューションを探していますが、VBA も受け入れられます。

答え1

最も簡単な解決策は、数式を使用して新しい列を作成し、それをコピーして古い列に貼り付けることです=A1&" new"。数式を上書きしないようにするには、値の特殊貼り付けを使用できます。

複雑な解決策としては、次のような VBA マクロを使用することです。

Sub AppendToExistingOnLeft()
Dim c As Range
For Each c In Selection
  If c.Value <> "" Then c.Value = c.Value & " new"
Next
End Sub

この VBA は次のように使用できます。

  1. 範囲を選択

  2. Alt+キーを押したままにするF11と、Microsoft Visual Basic ウィンドウが開きます。

  3. クリック挿入 > モジュール上記のVBAコードをモジュールウィンドウに貼り付けます

  4. このマクロを実行するには F5 キーを押します。

関連情報