VBAエキスパート「Excel VBA スタンダード」100本ノック
VBAエキスパート「Excel VBA スタンダード」に合格しました。
スペルを覚えることが大事な試験だと感じました。
私が試験勉強でひたすら覚えた単語100本ノックです!
プロシージャ
1 引数
引数を渡す
Sub プロシージャ名(引数)
Function プロシージャ名(引数)
引数を受け取る
Sub プロシージャ名(A As Long)
Function プロシージャ名(A As Long)
Sub プロシージャ名(A As Long, B As String) ※複数受け取る
'引数
Sub Sample4()
Call Sample5(100)
End Sub
Sub Sample5(A As Long)
MsgBox A
End Sub
2 ByVal(値渡しで変数の値が変わらない)
Sub プロシージャ名(ByVal A As Long)
'ByVal(値渡しで変数の値が変わらない)Aは100のまま
Sub Sample6()
Dim A As Long
A = 100
Call Sample7(A)
MsgBox A
End Sub
Sub Sample7(ByVal B As Long)
B = B * 2
End Sub
3 ByRef(参照渡しで変数の値が変わる)
Sub プロシージャ名(ByRef A As Long) ※または省略
'ByRef(参照渡しで変数の値が変わる)Aは200に変わる
Sub Sample6()
Dim A As Long
A = 100
Call Sample7(A)
MsgBox A
End Sub
Sub Sample7(ByRef B As Long)
B = B * 2
End Sub
変数
4 配列(複数の値を同時に格納)
Dim 配列変数名(配列要素の上限) ※下限を省略すると0
'配列
Sub Sample2()
Dim A(2) As String
A(0) = "佐藤"
A(1) = "山本"
A(2) = "菊池"
MsgBox A(0) & "と" & A(1) & "と" & A(2)
End Sub
5 Split(区切った文字列を各要素に入れた配列を返す)
Split(元の文字列, 区切り文字列)
'Split
Sub Sample3()
Dim A As Variant
A = Split("A-B-C", "-")
MsgBox A(1)
End Sub
6 UBound(配列の上限を返す)
UBound(配列)
'UBound
Sub Sample4()
Dim A As Variant, i As Long
A = Split("A-B-C", "-")
For i = 0 To UBound(A)
MsgBox A(i)
Next i
End Sub
7 LBound(配列の下限を返す)
LBound(配列)
'LBound
Sub Sample4()
Dim A As Variant, i As Long
A = Split("A-B-C", "-")
For i = LBound(A) To UBound(A)
MsgBox A(i)
Next i
End Sub
8 動的配列(マクロの中で必要に応じて要素数を指定)
Dim 変数名() As String ※宣言時には要素数を指定しない
9 ReDim(後から要素数を指定)
ReDim 変数名()
'ReDim
Sub Sample5()
Dim A() As String
ReDim A(2)
A(2) = "菊池"
MsgBox A(2)
End Sub
10 Preserve(既存の値を消さないで要素数を変更)
ReDim Preserve 変数名()
'Preserve
Sub Sample6()
Dim A() As String
ReDim A(1)
A(0) = "佐藤"
A(1) = "山本"
ReDim Preserve A(2)
A(2) = "菊池"
MsgBox A(0)
End Sub
11 Set(オブジェクト変数にオブジェクトを格納する)
Set 変数名 = オブジェクト
'Set
Sub Sample8()
Dim A As Range
Set A = Range("A1")
A.Font.ColorIndex = 3
End Sub
12 Noting(オブジェクト変数を破棄する)
Set 変数名 = Nothing
'Nothing
Sub Sample8()
Dim A As Range
Set A = Range("A1")
A.Font.ColorIndex = 3
Set A = Nothing
End Sub
ステートメント
13 Exit(処理を途中で終了)
Exit Sub / Exit Funciton
Exit For
Exit Do
'Exit Sub
Sub Sample1()
Dim i As Long
For i = 1 To 100
If Cells(i, 1) = "" Then
Exit Sub
End If
Next i
MsgBox "終わりました"
End Sub
14 Select Case(複数の条件を同時に判定)
Select Case 値
'Select Case
Sub Sample4()
Dim buf As String
buf = "土曜"
Select Case buf
Case "月曜"
Range("A1").Value = 1
Case "火曜"
Range("A1").Value = 2
Case "水曜", "木曜"
Range("A1").Value = 3
Case Else
Range("A1").Value = 4
End Select
End Sub
15 Do…Loop(指定した条件によって処理を繰り返す)
繰り返しの前で条件を判定する
Do 条件
処理
Loop
繰り返しの後で条件を判定する
Do
処理
Loop 条件
16 Until(条件が正しくない間は繰り返す)
処理を実行する前に判定する
Do Until 条件
'Do Loop(Until)
Sub Sample5()
Dim 行 As Long, 支払額 As Long
行 = 5
Do Until 行 > 6
支払額 = 支払額 + Cells(行, 2)
行 = 行 + 1
Loop
MsgBox 支払額
End Sub
処理を実行する後に判定する
Loop Until 条件
'Do Loop(Until)
Sub Sample6()
Dim 行 As Long, 支払額 As Long
行 = 1
Do
支払額 = 支払額 + Cells(行, 2)
行 = 行 + 1
Loop Until 行 > 6
MsgBox 支払額
End Sub
17 While(条件が正しい間は繰り返す)
処理を実行する前に判定する
Do While 条件
'Do Loop(While)
Sub Sample7()
Dim 行 As Long, 請求額 As Long
行 = 1
Do While Cells(行, 1) = "請求"
請求額 = 請求額 + Cells(行, 2)
行 = 行 + 1
Loop
MsgBox 請求額
End Sub
処理を実行する後に判定する
Loop While 条件
'Do Loop(While)
Sub Sample8()
Dim 行 As Long, 請求額 As Long
行 = 1
Do
請求額 = 請求額 + Cells(行, 2)
行 = 行 + 1
Loop While Cells(行, 1) = "請求"
MsgBox 請求額
End Sub
18 For Each(グループのメンバーをひとつずつ順番に取り出して操作)
For Each 変数 In グループ名
変数を使った操作
Next 変数
'For Each
Sub Sample9()
Dim C As Range
For Each C In Range("A1:A3")
C = C * 2
Next C
End Sub
19 Selection(選択された複数のセル)
'For Each
Sub Sample10()
Dim C As Range
For Each C In Selection
C = C * 2
Next C
End Sub
20 ネスト
If 条件1 Then
If 条件2 Then
処理
End If
'ネスト
Sub Sample11()
Dim i As Long
For i = 2 To 20
If 20 < Cells(i, 2) Then
If Cells(i, 2) < 70 Then
Cells(i, 3) = Cells(i, 2) * 2
End If
End If
Next i
End Sub
ファイルの操作
21 ThisWorkbook(現在実行中のマクロが書かれているブック)
'ThisWorkbook
Sub Sample4()
Dim i As Long
For i = 1 To 3
Workbooks.Open _
"C:\Work" & ThisWorkbook.Sheets("Sheet1").Cells(i, 1) & ".xlsx"
Next i
End Sub
22 Path(マクロを書いているブックのパス)
ThisWorkbook.Path
'Path
Sub Sample6()
MsgBox ThisWorkbook.Path
End Sub
23 Name(マクロを書いているブックのファイル名)
ThisWorkbook.Name
'Name
Sub Sample7()
MsgBox ThisWorkbook.Name
End Sub
24 Open(ブックを開く)
'Open
Sub Sample3()
Workbooks.Open "C:\Work" & Range("A1") & "_売上.xlsx"
End Sub
25 SaveAs(アクティブブックに名前を付けて保存)
'SaveAs
Sub Sample5()
ActiveWorkbook.SaveAs "C:\Work" & Year(Now) & "年売上.xlsx"
End Sub
26 ActiveWorkbook(現在表示しているブック)
ActiveWorkbook.SaveAS
27 Format(引数「値」に引数「書式設定」で指定した表示形式を設定したとき、それがどう表示されるかの結果を返す)
Format(値, 書式記号)
'Formt
Sub Sample8()
ActiveWorkbook.SaveAs "C:\Work" & Format(Now, "yyyymmdd") & ".xlsx"
End Sub
28 FileCopy(ファイルをコピーする)
FileCopy コピー元のファイル名, コピー先のファイル名
'FileCopy
Sub Sample11()
FileCopy "C:\Work\売上.xlsx", "C:\Work\Sub\売上(2019).xlsx"
End Sub
29 Dir(フォルダー)
Directory(ディレクトリ) = フォルダー
30 MkDir(フォルダーを作成する)
MkDir 作成するフォルダー名
'MkDir
Sub Sample12()
MkDir "C:\Work\2019"
End Sub
ワークシート関数
31 WorksheetFunction
WorksheetFunction.関数名(引数)
32 Sum(数値を合計)
'Sum
Sub Sample1()
Range("A6") = WorksheetFunction.Sum(Range("A1:A5"))
End Sub
33 CountIf(特定のデータの件数をカウント)
'CountIf
Sub Sample2()
With WorksheetFunction
Range("E1") = .CountIf(Range("A1:A6"), "佐々木")
End With
End Sub
34 SumIf(特定のデータと同じ行にある数値だけを合計)
'SumIf
Sub Sample3()
With WorksheetFunction
Range("E2") = .SumIf(Range("A1:A6"), "佐々木", Range("B1:B6"))
End With
End Sub
35 Large(複数の数値に対して、大きい順で見たときに何番目の数値はいくつかを調べる)
'Large
Sub Sample4()
With WorksheetFunction
Range("D1") = .Large(Range("A2:A6"), 1)
Range("D2") = .Large(Range("A2:A6"), 2)
Range("D3") = .Large(Range("A2:A6"), 3)
End With
End Sub
36 Small(複数の数値に対して、小さい順で見たときに何番目の数値はいくつかを調べる)
'Small
Sub Sample5()
With WorksheetFunction
Range("D1") = .Small(Range("A2:A6"), 1)
Range("D2") = .Small(Range("A2:A6"), 2)
Range("D3") = .Small(Range("A2:A6"), 3)
End With
End Sub
37 VLookup(表の左端を検索して、見つかった行の指定した位置を返す)
'VLookup
Sub Sample6()
Range("E1") = WorksheetFunction.VLookup(Range("D1"), Range("A2:B7"), 2, False)
End Sub
38 Match(検索した文字列が、指定した範囲の中で上から何番目に存在しているかを調べる)
'Match
Sub Sample7()
Range("E1") = WorksheetFunction.Match(Range("D1"), Range("B2:B7"), 0)
End Sub
39 Index(行と列の番号を指定し、該当するセル番地の値を取り出す)
'Index
Sub Sample8()
Dim N As Long
With WorksheetFunction
N = .Match(Range("D1"), Range("B2:B7"), 0)
Range("E1") = .Index(Range("A2:A7"), N)
End With
End Sub
40 EoMonth(指定した月の月末の日を調べる)
'EoMonth
Sub Sample9()
Range("B1") = WorksheetFunction.EoMonth(Range("A1"), -1)
Range("B2") = WorksheetFunction.EoMonth(Range("A1"), 0)
Range("B3") = WorksheetFunction.EoMonth(Range("A1"), 1)
End Sub
セルの検索とオートフィルターの操作
41 Find(指定されたセル範囲内で文字列や数値を検索)
セルの範囲.Find(引数:=)
引数
What 検索する語句を指定 ※必ず指定
After 指定したセルの次のセルから検索
LookIn 値を検索するか、数式を検索するかなど、検索対象を指定
LookAt 完全一致検索をするかどうかを指定 ※指定した方がいい
SearchOrder 検索の方向を指定
SearchDirection 次を検索するか、前を検索するか、検索の向きを指定
MatchCase 大文字と小文字を区別して検索するかどうかを指定
MatchByte 半角文字と全角文字を区別して検索するかどうかを指定
SearchFormat 書式を検索の条件に含めるかどうかを指定
'Find
Sub Sample1()
Dim A As Range
Set A = Range("A1:A8").Find(What:="佐々木")
A.Offset(0, 1) = 100
End Sub
42 xlWhole(完全一致で検索)
セルの範囲.Find(What:=検索する語句, LookAt:=xlWhole)
'xlWhole
Sub Sample2()
Dim A As Range
Set A = Range("A1:A8").Find(What:="佐々木", LookAt:=xlWhole)
A.Offset(0, 1) = 100
End Sub
43 xlPart(部分一致で検索)
セルの範囲.Find(What:=検索する語句, LookAt:=xlPart)
'xlPart
Sub Sample3()
Dim A As Range
Set A = Range("A1:A8").Find(What:="佐々木", LookAt:=xlPart)
A.Offset(0, 1) = 100
End Sub
44 Nothing(セルが見つからなかったら)
If A Is Nothing Then
'Nothing
Sub Sample4()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
A.Offset(0, 1) = 100
End If
End Sub
45 Not(Nothingではなかったら)
If Not A Is Nothing Then
'Not
Sub Sample5()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If Not A Is Nothing Then
MsgBox "見つかりました"
Else
MsgBox "見つかりません"
End If
End Sub
46 EntireRow(セルを含む行全体)
'EntireRow
Sub Sample6()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
A.EntireRow.Delete
End If
End Sub
47 EntireColumn(セルを含む列全体)
'EntireColumn
Sub Sample7()
Dim A As Range
Set A = Range("A:E").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
A.EntireColumn.Delete
End If
End Sub
48 Offset(セルを基点に別のセルを操作)
基点セル.Offset(行, 列)
'Offset
Sub Sample8()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
A.Offset(0, 1) = A.Offset(0, 1) * 10
End If
End Sub
49 Copy(セルをコピー)
コピー元のセル範囲.Copy コピー先のセル範囲
'Copy
Sub Sample9()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
Range(A, A.End(xlToRight)).Copy Range("E2")
End If
End Sub
50 Resize(セルの大きさを指定)
'Resize
Sub Sample10()
Dim A As Range
Set A = Range("A:A").Find(What:="佐々木", LookAt:=xlWhole)
If A Is Nothing Then
MsgBox "見つかりません"
Else
A.Resize(1, 3).Copy Range("E2")
End If
End Sub
51 AutoFilter(表をオートフィルターで絞り込む)
セル.AtuoFilter Feild, Criteria1, Operator, Criteria2
Feild 何列目に条件を指定して絞り込むかの列位置を数値で指定
Criteria1 絞り込みの条件を文字列指定
Operator 絞り込み指示(2つの条件を指定)
Critetia2 2つ目の絞り込みの条件
52 Criteria1(絞り込みの条件を文字列指定)
'AutoFilter
'Criteria1
Sub Sample11()
Range("A1").AutoFilter Field:=1, Criteria1:="佐々木"
End Sub
53 xlAnd(なおかつ)
'xlAnd
Sub Sample12()
Range("A1").AutoFilter Field:=3, Criteria1:=">300", Operator:=xlAnd, Criteria2:="<700"
End Sub
54 xlOr(または)
'xlOr
Sub Sample13()
Range("A1").AutoFilter Field:=1, Criteria1:="佐々木", Operator:=xlOr, Criteria2:="桜井"
End Sub
55 xlFilterValues(複数の条件を配列形式で指定)
'xlFilterValues
Sub Sample14()
Dim A(2) As String
A(0) = "佐々木"
A(1) = "桜井"
A(2) = "松本"
Range("A1").AutoFilter Field:=1, Criteria1:=A, Operator:=xlFilterValues
End Sub
56 CurrentRegion(任意のセルを含むひとかたまりのセル範囲)
セル.CurrentRegion
'CurrentRegion
Sub Sample15()
Range("A1").AutoFilter field:=1, Criteria1:="佐々木"
Range("A1").CurrentRegion.Copy Sheets("Sheet2").Range("A1")
End Sub
57 Subtotal(絞り込んだ結果をカウント)
Subtotal(集計方法, セル範囲)
'Subtotal
Sub Sample16()
Dim N As Long
Range("A1").AutoFilter field:=1, Criteria1:="佐々木"
N = WorksheetFunction.Subtotal(3, Range("A:A"))
MsgBox "佐々木は、" & N - 1 & "件あります"
Range("A1").AutoFilter field:=1
End Sub
データの並べ替え
58 Sort(セルの並べ替え)
簡単な方法(Excel2003まで)
並べ替えるセル範囲.Sort Key1, Order1, Header
59 xlAscending(昇順)
'Sort
'xlAscending
Sub Sample1()
Range("A1").Sort key1:=Range("D1"), Order1:=xlAscending, Header:=xlYes
End Sub
60 xlDescending(降順)
'xlDescending
Sub Sample2()
Range("A1").Sort key1:=Range("D1"), Order1:=xlDescending, Header:=xlYes
End Sub
61 xlYes(見出しあり)
'xlYes
Sub Sample3()
Range("A1").Sort key1:=Range("D1"), Order1:=xlAscending, Header:=xlYes
End Sub
62 xlNo(見出しなし)
'xlNo
Sub Sample4()
Range("A1").Sort key1:=Range("D1"), Order1:=xlAscending, Header:=xlNo
End Sub
63 SortFields(並べ替えの条件の指定)
ややこしい方法(Excel2007)
sheets("Sheet1").Sort.SortFiels.
'SortFields
Sub Sample5()
With Sheets("sheet1")
.Sort.SortFields.Clear
.Sort.SortFields.Add2 Key:=.Range("D1"), Order:=xlAscending
.Sort.Header = xlYes
.Sort.SetRange .Range("A:D")
.Sort.Apply
End With
End Sub
64 Clear(並べ替えの条件をクリア)
Sort.SortFiels.Clear
65 Add2(並べ替えの条件を設定)
Sort.SortFields.Add2 Key:=sheets("Sheet1").Range("D1"), Order:=xlAscending
66 Header(見出しの有無を指定)
sheets("Sheet1").Sort.Header = xlYes
67 SetRange(ソートする範囲を設定)
sheets("Sheet1").Sort.SetRange sheets("Sheet1").Range("A:D")
68 Apply(ソートを実行)
sheets("Sheet1").Sort.Apply
69 Phonetic(ふりがなの表示)
'Phonetic
Sub Sample6()
MsgBox Range("A2").Phonetic.Text
End Sub
70 Text(ふりがなを取得)
'Text
Sub Sample7()
Range("A2").Phonetic.Text = "アラガキ"
End Sub
テーブルの操作
71 ListObject(テーブルを特定)
テーブルのセルから特定
テーブル内のセル.ListObject
テーブルが存在するシートから特定
対象シート.ListObjects(インデックス)
対象シート.ListObjects(シート名)
72 Range(見出し行含むテーブル全体)
セル.ListObject.Range
セルを指定するときは、範囲の中の何番目と指定
セル.ListObject.Range(2)
'Range
Sub Sample1()
Range("A1").ListObject.Range(2).Select
End Sub
73 HeaderRowRange(見出し行)
セル.ListObject.HeaderRowRange
'HeaderRowRange
Sub Sample2()
Range("A1").ListObject.HeaderRowRange(3).Select
End Sub
74 DataBodyRange(見出しを含まないテーブルデータ全体)
セル.ListObject.DataBodyRange
'DataBodyRange
Sub Sample3()
Range("A1").ListObject.DataBodyRange(2).Select
End Sub
75 ListColumns(列)
セル.ListObJect.ListColumns(列番号).Range
'ListColumns
Sub Sample4()
Range("A1").ListObject.ListColumns(2).Range.Select
End Sub
76 ListRows(行)
セル.ListObject.ListRows(行番号).Range ※見出しを含めない
'ListRows
Sub Sample5()
Range("A1").ListObject.ListRows(2).Range.Select
End Sub
77 ListColumns.Add(列を挿入)
セル.ListObJect.ListColumns.Add
'ListClolumns.Add
Sub Sample6()
Range("A1").ListObject.ListColumns.Add
End Sub
78 ListColumns.Count(列の数)
セル.ListObJect.ListColumns.Count
'ListColumns.Count
Sub Sample7()
Dim N As Long
Range("A1").ListObject.ListColumns.Add
N = Range("A1").ListObject.ListColumns.Count
Range("A1").ListObject.ListColumns(N).DataBodyRange = "=[@数値]*2"
End Sub
79 [#All](見出し行含むテーブル全体)
Range("テーブル1[#All]")
'[#All]
Sub Sample8()
Range("テーブル1[#All]").Select
End Sub
80 [#Data](見出しを含まないテーブルデータ全体)
Range("テーブル1[#Data]")
'[#Data]
Sub Sample9()
Range("テーブル1[#Data]").Select
End Sub
81 [#Headers](見出し行)
Range("テーブル1[#Headers]")
'[#Headers]
Sub Sample10()
Range("テーブル1[#Headers]").Select
End Sub
82 [列名](列)
Range("テーブル1[列名]")
'[列名]
Sub Sample11()
Range("テーブル1[名前]").Select
End Sub
エラー対策
83 On Error(エラーが発生したとき)
84 GoTo(エラーが発生したら別の処理にジャンプ)
On Error GoTO ジャンプ先のラベル名
Sub Sample1()
On Error GoTo Error1
Sheets(2).Range("A1") = 100
MsgBox "代入しました"
Exit Sub
Error1:
MsgBox "エラーが発生しました"
End Sub
85 Err.Number(エラー番号を返す)
'Err.Number
Sub Sample2()
On Error GoTo Error1
Sheets("Sheet3").Name = Range("A1")
Exit Sub
Error1:
Select Case Err.Number
Case 9
MsgBox "Sheet3が存在しません"
Case 1004
MsgBox "同名のシートが存在します"
Case Else
MsgBox "想定しないエラーです"
End Select
End Sub
86 Err.Description(エラーメッセージを返す)
Sub Sample3()
On Error GoTo Error1
Sheets("Sheet3").Name = Range("A1")
Exit Sub
Error1:
Select Case Err.Description
Case "インデックスが有効範囲にありません。"
MsgBox "Sheet3が存在しません"
Case Else
MsgBox "想定しないエラーです"
End Select
End Sub
87 Resume Next(発生したエラーを無視)
On Error Resume Next
'Resume Next
Sub Sample4()
Dim A As Long
On Error Resume Next
A = Rows(1).Find("氏名").Column
If A > 0 Then
Cells(2, A).Value = "山田太郎"
Else
MsgBox "氏名列がありません"
End If
End Sub
88 StrConv(文字列を様々な文字種に変換)
StrConv(元の文字列, 変換する文字種)
89 vbUpperCase(大文字に変換)
StrConv(元の文字列, vbUpperCase)
'StrConv
'vbUpperCase
Sub Sample5()
Dim i As Long
For i = 1 To 8
Cells(i, 2) = StrConv(Cells(i, 1), vbUpperCase)
Next i
End Sub
90 vbLowerCase(小文字に変換)
StrConv(元の文字列, vbLowerCase)
'vbLowerCase
Sub Sample6()
Dim i As Long
For i = 1 To 8
Cells(i, 2) = StrConv(Cells(i, 1), vbLowerCase)
Next i
End Sub
91 vbWide(全角に変換)
StrConv(元の文字列, vbWide)
'vbWide
Sub Sample7()
Dim i As Long
For i = 1 To 8
Cells(i, 2) = StrConv(Cells(i, 1), vbWide)
Next i
End Sub
92 vbNarrow(半角に変換)
StrConv(元の文字列, vbNarrow)
'vbNarrow
Sub Sample8()
Dim i As Long
For i = 1 To 8
Cells(i, 2) = StrConv(Cells(i, 1), vbNarrow)
Next i
End Sub
93 Replace(不要な文字を除去)
Replace(元の文字列, 検索文字, 置換文字)
'Replace
Sub Sample9()
Dim i As Long
For i = 1 To 8
Cells(i, 2) = Replace(Cells(i, 1), "-", "")
Next i
End Sub
94 DateSrial(日付と認識できるシリアル値に変換)
DateSerial(年, 月, 日)
'DateSerial
Sub Sample10()
Dim i As Long
For i = 1 To 8
Cells(i, 4) = DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3))
Next i
End Sub
デバック
95 ?変数(イミディエイトウィンドウで変数を調べる)
a=100
?a
100
96 F9(ブレークポイントの位置でマクロを一時停止)
97 Stop(マクロを一時停止するステートメント)
'Stop
Sub Sample3()
Dim A As Long
A = 500
If Range("A1") <> "" Then Stop
Range("A1") = A
End Sub
98 F8(ステップ実行)
99 TypeName(データの種類を調べる)
'TypeName
Sub Sample4()
Dim A As Variant
A = "Excel"
MsgBox TypeName(A)
End Sub
100 IsNumeric(数値かどうかを判定)
'IsNumeric
Sub Sample5()
Dim A As Variant
A = 100
If IsNumeric(A) = True Then
MsgBox "数値です"
Else
MsgBox "数値ではありません"
End If
End Sub
この記事が気に入ったらサポートをしてみませんか?