見出し画像

【初心者が常用で使える】エクセルVBAで便利なコード<セルの操作編>[Excel]

僕が普段、よく使っているVBAの便利なコード【セルの取得編】をまとめてみました。良かったらご参考くださいませ。

【使い方】
使用したい行を一行をそのままコピペして使えます。説明(例 '縦方向)はコメントアウトしていますので、気にならなければそのままでOKです。

■クリア

Range("A1").Clear '全クリア
Range("A1:G10").Clear '複数範囲 全クリア
Range("A1").ClearContents '値だけクリア
Range("A1:G10").ClearFormats '書式だけクリア
Range("A1:G10").ClearContents '数式と値をクリア
Range("A1:G10").SpecialCells(xlConstants, 23).ClearContents 'セル範囲の値だけをクリア
Range("A1:A10,C1:C10,E1:E10").Clear

■削除してシフト

Range("A1").Delete Shift:=xlUp 'A1を削除して上方向にシフト
Range("A1:G1").Delete Shift:=xlUp 'A1~G1を削除して上方向にシフト
Range("A1").Delete Shift:=xlToLeft 'A1を削除して左方向にシフト
Range("A1:G1").Delete Shift:=xlToLeft 'A1~G1を削除して左方向にシフト

■色付け

Range("A1").Font.ColorIndex = xlAutomatic '文字色を自動に
Range("A1").Font.ColorIndex = 3 '赤色に変更(インデックス表記)
Range("A1").Font.Color = RGB(255, 0, 0) '赤色に変更(RGB表記)
Range("A1").Interior.ColorIndex = xlNone '背景色をなしに
Range("A1").Interior.ColorIndex = 35 '黄緑色に変更(インデックス表記)
Range("A1").Interior.Color = RGB(200, 200, 200) '背景色をグレーに変更(RGB表記)

■罫線

'引数省略方式
Range("A1:C3").Borders.LineStyle = xlContinuous '実線をひく

'線の種類
With Range("A1:C3").Borders
 .LineStyle = xlContinuous '実線
 .LineStyle = xlDash '破線
 .LineStyle = xlDot '点線
 .LineStyle = xlDouble '二重線
 .LineStyle = xlNone '削除
End With
'線の太さ
With Range("A1:C3").Borders
 .Weight = xlHairline '極細
 .Weight = xlThin '細(指定しなければこれ)
 .Weight = xlMedium '中
 .Weight = xlThick '太
End With
'線の色
With Range("A1:C3").Borders
 .ColorIndex = xlAutomatic '自動(指定しなければこれ)
 .ColorIndex = 3 '赤
 .ColorIndex = 5 '青
End With
'線の細かい位置
With Range("A1:C3")
 .Borders.LineStyle = xlContinuous '枠と格子全部に適用
 .Borders(xlEdgeTop).LineStyle = xlContinuous '上辺
 .Borders(xlEdgeRight).LineStyle = xlContinuous '右辺
 .Borders(xlEdgeBottom).LineStyle = xlContinuous '下辺
 .Borders(xlEdgeLeft).LineStyle = xlContinuous '左辺
 .Borders(xlInsideHorizontal).LineStyle = xlContinuous '中横線
 .Borders(xlInsideVertical).LineStyle = xlContinuous '中縦線
 .Borders(xlDiagonalUp).LineStyle = xlContinuous '右上がり斜線
 .Borders(xlDiagonalDown).LineStyle = xlContinuous '右下がり斜線
End With

■並び変え

'A1:G10範囲をC1を基準に昇順に並び替え
Range("A1:G10").Sort Key1:=Range("C1"), order1:=xlAscending '昇順
Range("A1:G10").Sort Key1:=Range("C1"), order1:=xlDescending '降順
'3つまで優先キーを設定できる xlYes 先頭行の見出しは並べ替えられない
Range("A1:G10").Sort _
 Key1:=Range("C1"), order1:=xlAscending, _
 Key2:=Range("B1"), order2:=xlDescending, _
 Key3:=Range("D1"), order3:=xlAscending, _
 Header:=xlYes

■コピペ

'複数範囲の高速コピペ
Range(Cells(1, 1), Cells(10000, 1)).Copy Cells(1, 2)

Range("A1").Copy 'コピー
Range("A1").PasteSpecial 'ペースト
Range("A1").PasteSpecial Paste:=xlPasteValues '値だけ貼り付け
Range("A1").PasteSpecial Paste:=xlPasteFormats '書式だけ貼り付け
Range("A1").AutoFill Destination:=Range("A1:A5") 'オートフィル
Application.CutCopyMode = False 'コピーモード解除

▼関連記事

VBAマクロの処理が遅くて時間がかかるので、 高速化かつ早く書ける書き方についてまとめてみた【Excel】【関数】

VBAを高速化するにはファンクション関数を使うやり方がおすすめ【Excel】【自動化】【VLOOKUP】

2次元配列を使って一括で値代入して高速化する方法【VBA初心者】【Excel】

エクセルのVBAで転記後、0が表示されず書式設定するだけで解決した件【Excel】【VBA】

エクセルの条件付き書式(FormatCondition)の変数記載エラーに困った話【Excel】【VBA】

この記事が気に入ったらサポートをしてみませんか?