ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

エクセルで便利なVBAマクロのメモ

エクセルのVBAで便利な記述の備忘録。
標準操作でできる範囲ならマクロの記録である程度なんとかなりますね。。

A1からA列の最下行の範囲


A列の1行目からA列で何か記入している最下行の範囲を表す場合。

Range("A1", .Range("A" & .Rows.Count).End(xlUp))

 

データサイズのバイト表記をKiB表記にする

A列にデータサイズが並んでいてB列にKiB表記にしたいときはこちら。

' A列を1024で割ったものをB列に入れる
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]/1024"
Range("B1").AutoFill Destination:=Range("B1:B" & Cells(2).CurrentRegion.Rows.Count)

' B列を文字列に変えてKB表示にする
Columns("B:B").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "0 ""KiB"""

MiB表示にしたいならさらに1024で割ればOK。

A列の値が50以上のA~B列を赤文字・太文字にする

条件付き書式>新しいルール>数式を使用して、書式設定をするセルを決定‥と同じもの。

Columns("A:B").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A1>=50"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

 

随時、追記していきます。