こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
毎日、膨大なデータチェックや資料作成で「もう会社に行きたくない…」と思う朝、ありませんか?
特に、何千行もあるExcelデータから不要なデータだけをマウスでスクロールして、選択して、右クリックして削除…なんてやっていると、手首も心も折れそうになります。
今日は、そんな「単純だけど面倒くさい作業」を一瞬で終わらせるVBAのテクニックをご紹介します。
なぜ Range じゃなくて Rows / Columns なの?
VBAを勉強し始めると、最初に Range(“A1”)(A1セル)のような書き方を習います。
頻繁使う手法ですが、大量のデータを扱う際は「この行、全部いらない!」「この列、全部隠したい!」というシーンが多くなってきますよね。
そんな時に活躍するのが、Rows(ロウズ) と Columns(カラムズ) です。
- Range: ピンポイントで場所を指定する(点)
- Rows / Columns: 端から端まで丸ごと指定する(線・面)
「行全体」や「列全体」をガバっと掴んで操作できるので、コードが短くて済みますし、何より処理速度が速いのが特徴です。
【コピペOK】明日から使える便利コード3選
実際の現場で私がよく使っているコードを紹介します。VBE(マクロの編集画面)にコピペして試してみてください。
1. 指定した行をバッサリ削除する
不要なデータ行を消す時、行番号を一つひとつ選択していませんか?
Sub DeleteRows()
' 2行目から5行目までをまとめて削除
Rows("2:5").Delete
End Sub
元に戻せないので、テスト時はバックアップを取ってください!
2. 邪魔な列を「非表示」にする
上司やクライアントに見せる資料を作る時、計算用の列(例えばC列とD列)を隠したいことがありますよね。
Sub HideColumns()
' C列からD列を非表示にする
Columns("C:D").Hidden = True
End Sub
3. 列幅を自動調整して見やすくする
これが私の一番のお気に入りです。文字がセルからはみ出していたり、#### と表示されていたりすると、だらしない印象を与えてしまいます。これを使えば、一発で「ちょうどいい幅」になります。
Sub AutoFitColumns()
' B列の幅を、文字の長さに合わせて自動調整
Columns("B").AutoFit
End Sub
全部の列をきれいにしたいなら Columns.AutoFit だけでOK!
【応用編】さらに便利な実用コード
基本操作に慣れたら、こんな使い方もおすすめです。レポート作成などがさらに爆速化します。
4. データの一番上に「新しい行」を挿入する
新しいデータを追加したり、タイトル行を入れたりするために、1行目を空けたい時に使います。
挿入された行は、元の1行目の書式(色など)を引き継ぎます。
Sub InsertTopRow()
' 1行目に新しい行を挿入
Rows(1).Insert
End Sub
5. 書式(色や太字)だけをリセットする
「データは残したいけど、塗りつぶしの色や罫線だけ消してキレイにしたい」という時に便利です。文字は消えませんので安心してください。
4番目の新しい行を挿入する場合と組み合わせたりして使うことも可能です。
Sub ClearFormats()
' 2行目から10行目の「書式」だけを削除(文字は消さない)
Rows("2:10").ClearFormats
End Sub
おわりに
今回ご紹介した Rows と Columns は、Excel操作の基本中の基本ですが、自動化する際の効果は絶大です。
地味に面倒くさかった作業なのに、一瞬で表がキレイになるのを味わうと、もう手作業には戻れなくなります。
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント