ExcelVBA学習6日目(セルの操作)

▼指定した行や列の操作

・列の選択

 Columns("B:E").Select  'B~E列

・選択中のセルを含む行を選択

 Selection.EntireRow.Select

※選択しているセルを基準にそのセルを含む行全体や列全体を選択するには、RangeオブジェクトのEntireRowプロパティやEntireColumnプロパティを利用。

※行番号や列番号を取得するには、RangeオブジェクトのRowプロパティやColumnプロパティを利用する。ただし、Rangeオブジェクトにセルの範囲を指定した場合は、指定したセル範囲内の先頭行、または最初の列の番号が返る。

 

▼列の挿入

・B列~C列まで列を挿入する。その際、右列の書式をコピーする。

 Column("B:C").Insert CopyOrigin:xlFormatFromRightOrBelow

 

▼行の高さと列幅の指定

・6行から9行目までの高さを25ポイントにする

 Rows("6:9").RowHeight = 25

・B列~C列の幅を20にする

 Columns("B:C").ColumnWidth = 20

・列幅を標準に戻す

 Columns("B:C").UseStandardWidth = True

・Rangeオブジェクトで特定のセルを指定すると、そのセルを含む行や列のサイズを取得・指定できる。

 Range("A10").RowHeight = 20 ’10行目の行の高さが変わる

 

▼行の高さや列幅を自動調整(AutoFit)

・A3セル~A3セルを基準にした終端セル(右)を含む列の幅を自動調整
 Range("A3", Range("A3").End(xlToRight)) .EntireColumn.AutoFit
・A3セルを含むアクティブセル領域の内容に合わせて列幅を自動調整

 Range("A3").CurrentRegion.Columns.AutoFit

   

f:id:SUNO:20200818112813p:plain

※A1セルの文字の長さは無視されている

 

▼セルの書式設定

・A1セルのフォントを「MS明朝」にして、サイズを「18」にし、太字、斜体設定をONにする

 With Range(”A1”).Font

       .Name = "MS 明朝"

  .Size = 18

  .Bold = True

  .Italic = True

  .UnderLine = True

 End With

 ※FontStyleプロパティ、ThemeFontプロパティを指定することもできる

 

▼文字の配置

・A3セル~G3セルの配置を中央に揃える

 Range("A3:G3").HorizontalAlignment = xlCenter

※xlDistributed(均等割り付け)、xlJustify(両端揃え)、xlLeft(左揃え)、xlRight(右揃え)、xlGeneral(標準)、xlFill(繰り返し)、xlCenterAcrossSelection(選択範囲内で中央)

※セル高さに対する文字配置は「オブジェクト.VerticalAlignment」、設定値はxlTop(上揃え)、xlCenter(中央揃え)、xlBottom(下揃え)、xlJustify(両端揃え)、xlDistributed(均等割り付け)

※文字の向きを指定するには、RangeオブジェクトのOrientationプロパティで指定。

 

・B3セル~B3セルを基準にした終端セル(下)目までのセルの文字を折り返して表示する

 Range("B3", Range("B3").End(xlDown)) _

  .WrapText = True

※列幅に収まらない文字を自動的に縮小して表示されるようにするには、RangeオブジェクトのShrinkToFitプロパティを使う。Trueを指定すると文字を縮小設定がオンになる。

 

・フォントの色をインデックス番号「46」に設定する

 .Font.ColorIndex = 46

・セルの塗りつぶしの色をインデックス番号「36」に設定する

 .Interior.ColorIndex = 36

※ColorIndexプロパティの設定値は、インデックス番号か、自動(xlColorIndexAutomatic)、色なし(xlColorIndexNone)を指定する。

 

 

▼罫線の設定

・A3セルを含むアクティブセル領域に格子状の罫線を引く。線の種類は2本線にする

 Range("A3").CurrentRegion.Borders _

  .LineStyle = xlDouble

f:id:SUNO:20200818150005p:plain

・A3セル~A3セルを基準にした終端セル(右)までのセル範囲を対象に、下の罫線に関する処理を記述

 With Range("A3", Range("A3").End(xlToRight)).Borders(xlEdgeBottom)

  .LineStyle = xlContinuous ’線の種類を実践に

  .Weight = xlThick ’線の太さを太く

  .ColorIndex = 5 ’線の色を青に

 End With

 

 

▼セルのデータの並び替え(Excel2003)

・A3セルを含むアクティブセル領域を対象にデータの並べ替えを行う。並べ替えの条件は登録プランの昇順で、同じプランの場合は、フリガナのあいうえお順に並べる

Option Explicit

Sub データの並べ替え_Excel2003()
 Range("A3").Sort _
 key1:=Range("E3"), order1:=xlAscending, _
 key2:=Range("C3"), order2:=xlAscending, _
 Header:=xlYes
End Sub

f:id:SUNO:20200818153036p:plain

Excelの操作で同じことをしたいときは「データ」タブ→並べ替えをクリックする

 

▼文字の検索をする

・C6セル~C14セルを対象に、B3セルの文字を探し、結果が見つからないときにメッセージを表示する

Dim result As Range
Set result = Range("C6:C14").Find(what:=Range("B3").Value, _
 LookAt:=xlWhole)
If Not result Is Nothing Then
 result.Select
Else
 MsgBox "There is Nothing you want to see."
End If

 

▼特定の書式が設定されたセルを検索する

・フォントが太字でセルの色が薄い青のセルを検索

With Application.FindFormat

 .Font.Bold = True

 .Interior.Color = 15773696

End With

Cells.Find(what:="", SerchFormat:=True).Activate