Home » ExcelVBA Rangeオブジェクト » Excel VBAでセルに文字列を追記する

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2401(ビルド17130.20000クイック実行)ベータチャネル

「マクロ セル内 追記」
「複数のセルに文字を追記する VBA」
といった検索で、時折アクセスがあります。

Excel VBAを使って、セルに文字列を追記するには、どのようなコードを書けばいいのかを探していらしたのでしょう。

[スポンサードリンク]

セルに追記を行うサンプルマクロ

以下のマクロが参考になるでしょうか。

Sub 選択セルに文字列を追記する()
 Const TXT_APPEND = "追記したい文字列"

 Dim rng As Range
 For Each rng In ActiveWindow.RangeSelection
  If rng.Value <> "" And Not rng.HasFormula Then
   rng.Value = rng.Text & vbLf & TXT_APPEND
  End If
 Next
End Sub

実行すると、選択されているセルの中で、空白ではなく、数式ではないセルの末尾に、「追記したい文字列」が追記されます。

その際、「追記したい文字列」の前に改行も追加しています。

サンプルマクロで行っている処理

上記のマクロで行っているのは以下のような処理です。

定数TXT_APPENDに、追記したい文字列を指定しておきます。

Const TXT_APPEND = "追記したい文字列"

WindowオブジェクトのRangeSelectionプロパティで取得できる選択セルに対してFor Each~Nextループで、処理を繰り返します。

Dim rng As Range
For Each rng In ActiveWindow.RangeSelection

セルが空白ではなく、

 If rng.Value <> "" And Not rng.HasFormula Then

数式ではなかった場合に、

 If rng.Value <> "" And Not rng.HasFormula Then

元々セルに表示されている文字列に、改行コード(vbLf)と定数TXT_APPENDの文字列を追記しています。

  rng.Value = rng.Text & vbLf & TXT_APPEND

最後の追記を行う部分を、以下のようにする方もいらっしゃるとは思いますが、日付に追記したい場合に

  rng.Value = rng.Value & vbLf & TXT_APPEND

Range.Valueで取得したデータに追記すると、シリアル値に文字列が追記されるため、ここではRange.Textプロパティを使ったサンプルにしています。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Excel VBAでセルに文字列を追記する

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.