- ベストアンサー
Excel VBA 選択範囲の空白に文字を入れる
VBA初心者です。よろしくおねがいします。毎月の集計で困っています。 例えば添付の写真のように 1)A列に地域、B列に地域詳細、C列に社員番号があります 2)A列には下段に地域総計(A18)、B列には地域詳細小計(B10,B17),そしてC10,17,18は空白になっています。 3) これは名古屋地区だけを抜き出したコピーですが実際は500行位あり他県の詳細も同様の形で集計が出ています。 4)ここで私が解決したいのはC行の空白(添付ではC10,17,18)にTotalという文字を抜き出して入れるVBAを教えていただきたいです。最終的にはA,B行はレポートのフォーマット上不要で削除になります。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 そういう処理はマクロを考えるより 手を動かした方が早く片付きます。 マクロが必要だとしても、 まずは、手作業の手順を確認して、 そのまま[マクロの記録]を録れば、 十分機能するマクロを得ることができます。 以下、手作業での手順 C列の[列見出し]をクリックして、C列全体を選択 [Ctrl]+[Shift]+[↑]キーで選択範囲をデータ範囲に限定 [F5]キーで[ジャンプ]ダイアログを表示 [セルの選択]をクリック [選択のオプション]で[空白セル]を選択→[OK] 空白セルが選択されている状態を維持したまま、 【Total】とタイプし、続けて[Ctrl]+[Enter]キーで確定。 以上の作業を実践に[マクロの記録]で得られる記述が以下。 Sub Macro1() ' ' Macro1 Macro ' ' Columns("C:C").Select Range(Selection, Selection.End(xlUp)).Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "Total" End Sub 簡潔に纏まるよう書き直したものが以下。 Sub Re8952109() On Error Resume Next Range("C1:C" & Cells(Rows.Count, "C").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Value = "Total" End Sub > C行の空白(添付ではC10,17,18)にTotalという文字を抜き出して入れる ひょっとして、ですが、、、 B列の「名古屋Total」を「名古屋」に置き換えることを含みに、 "抜き出して入れる"という表現を使っている場合は、 上記の手順の後に、B列に対して[置換]機能で【Total】を削除すれば 済みますので、こちらから特に書き足しませんが、工夫してください。 ご説明への理解が至っていなくて、お求めの答えと違っている場合は補足してください。 以上です。
その他の回答 (1)
- Chiquilin
- ベストアンサー率30% (94/306)
マクロは VBAの知識も必要ですが 一般機能の使い方をまず勉強すべきだと思います。 Dim lstRow As Long lstRow = Cells(Rows.Count, 1).End(xlUp).Row On Error Resume Next Range("C1:C" & lstRow).SpecialCells(xlCellTypeBlanks).Value = "Total"
お礼
簡潔で分かりやすい説明ありがとうございました。