Functionプロシージャ
Functionプロシージャは引数を渡さなくてもエラーにならない。
引数の渡し方(ByRef・ByVal)
引数の渡し方には「参照渡し」と「値渡し」がある。
指定しない場合は「参照渡し」になる。
参照渡し(ByRef)
値渡し(ByVal)
並べ替え(SortオブジェクトSortメソッド)
並べ替え
Excel2007以降の並べ替え
SortオブジェクトとSortFieldオブジェクトを使って並べ替えを行う。
最大で64個のキーを設定可能。
Sub 並べ替え()
With ActiveSheet.Sort
'前回の並べ替え条件をクリア
.SortFields.Clear
'A1を基準に並べ替え 昇順
.SortFields.Add2 Key:=Range("A1"), Order:=xlAscending
'並べ替え範囲
.SetRange Range("A2:B12")
'並べ替え実行
.Apply
End WithEnd Sub
Excel2003までの並べ替え
Sortメソッドを使って並べ替えを行う。
最大で3個のキーを設定可能。
Range("A1").Sort Key1:=Range("A1"). Order1:=xlAscendung, Header:=xlYes
A1を含む表全体を、A列に入力されている数値の昇順で並べ替える
A1を基準に昇順で並べ替えを行った
Sortオブジェクトのメンバー
SortOn ~並べ替えのタイプ~
定数 | 数値 | 意味 |
---|---|---|
xlSortOnValues |
0
|
セル内のデータで並べ替え
|
xlSortOnCellColor |
1
|
セルの背景で並べ替え
|
xlSortOnFontColor |
2
|
セルの文字色で並べ替え
|
ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), SortOn:=xlSortOnCellColor
Order ~並べ替えの順番~
定数 | 数値 | 意味 |
---|---|---|
xlAscending |
1
|
昇順
|
xlDescending |
2
|
降順
|
ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), Order:=xlAscending
DataOption ~数値と文字が混在~
定数 | 数値 | 意味 |
---|---|---|
xlSortNormal |
0
|
数値と文字列別々
|
xlSortTextAsNumbers |
1
|
文字列を数値とみなす
|
ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), DataOption:=xlSortnormal
Header ~タイトル行かどうか~
定数 | 数値 | 意味 |
---|---|---|
xlYes |
1
|
1行目はタイトル行
|
xlNo |
2
|
1行目はタイトル行ではない
|
ActiveSheet.Sort.Header = xlNo
複数条件でフィルターをかける(AutoFilter 配列)
AutoFilterメソッド
セル.AutoFilter Field, Criteria1, Operator, Criteria2
Criteriaで条件指定できるのは2つまで。
3つ以上条件指定する場合は、引数Criteria1を配列形式で指定する。
条件2つ
With Range("A1")
.AutoFilter field:=1, Criteria1:="*B*", _
Operator:=xlOr, Criteria2:="*C*"
End with
条件3つ以上
Sub wrk()
Dim a(2) As String
a(0) = "B"
a(1) = "C"
a(2) = "F"
Range("A1").AutoFilter 1, a, xlFilterValuesEnd Sub
フォルダ作成(MkDirステートメント)
MkDir 作成するフォルダー名
Mk:Make
Dir:Directory
デスクトップに20210415という名前のフォルダが作成される。
Sub フォルダ作成()
MkDir "C:\Users\sr950\OneDrive\デスクトップ\20210415"
End Sub