• ベストアンサー

excel2003 マクロ 複数セルに文字を追記

オートフィルタ後、E列の文字が入力されているセルにのみ 頭に「花」という文字をいれたい。 ということをしたいです。 もともと入っている文字に追記をしたいのですが どうすればよいでしょうか? オートフィルタした値は、すべて同じではないです。 アドバイスお願いします。 Sub オートフィルタ後花をつける() moji = "花" With Worksheets("Sheet1")    .Range("E3",Range("E65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Select Selection.Value = moji & ActiveCell.Value←これではだめですよね・・・ End With End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

オートフィルタで絞り込み表示されているE列にだけ「花」を付けるなら以下も試してみてください Sub Macro2() Dim r As Range  On Error GoTo end0  For Each r In Range("E3:E65536").SpecialCells(xlCellTypeConstants, 3)   If r.EntireRow.Hidden = False Then    r.Value = "花" & r.Value   End If  Next r end0: End Sub

mimomosan
質問者

お礼

ありがとうございます! オートフィルタの仕様にほんっとにイライラして 試行錯誤の上、質問で上げさせて頂いたのをやっとこさ作りました。 自分で作っておいてなんですが、絶対いつか、不具合でそうだな・・・ の不安がぬぐえませんでした。 zap35さんの記述なら あらっ、いいですね~100%です!

mimomosan
質問者

補足

すみません。 お分かりになったらご回答ください。。。 上で、すでに「花」が付いているセルには 「花」をつけない という風にするには、どうすればよいでしょうか? If の中にandで複数条件 にしても、どのように書けばよいのかわからなくて・・ (ワイルドカードを使うのでしょうか・・・) 初心者で申し訳ないのですが、よろしくお願いいたします。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 オートフィルタを使うなら、このようにします。 ただし、オートフィルタの場合は、1行目は除外します。 >Selection.Value = moji & ActiveCell.Value←これではだめですよね・・・ 何か方法はあるような気がしますが、思いつきません。 '------------------------------------------- Sub Test1()   Dim i As Long   Const strMOJI As String = "花"   With ActiveSheet     .AutoFilterMode = False     With Range("A1").CurrentRegion       .AutoFilter Field:=5, Criteria1:="<>"     End With     Application.ScreenUpdating = False     'AutoFilter.Range で範囲を取得     With .AutoFilter.Range.Columns(5) 'E列       For i = 2 To .Rows.Count         If .Cells(i, 1).EntireRow.Hidden = False Then           .Cells(i, 1).Value = strMOJI & .Cells(i, 1).Value         End If       Next i     End With     '.AutoFilterMode = False  'オートフィルタを解除     Application.ScreenUpdating = True   End With End Sub

mimomosan
質問者

お礼

ご回答ありがとうございます。 フィルタをどう適用するかわからないのですが・・・ 読み解いてみます。

関連するQ&A

専門家に質問してみよう