動作検証バージョン: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
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プロパティを使ったサンプルにしています。
[スポンサードリンク]
- Newer:Googleスプレッドシートなら「1.333」「1.225」「-1.333」「-1.225」の計算で誤差を確認できる
- Older:Excel for the Webならカレンダー表示がGoogleスプレッドシートより簡単
Home » Excel VBA Rangeオブジェクト » Excel VBAでセルに文字列を追記する