65日目:Excel マクロ/VBA
Excel マクロ/VBAの講義9日目。 今日で講習の半分が終わりました。
【講義内容】
- 練習問題4~6
【ワンポイント】
VBA練習4
Split
Sub 配列生成() Dim fruits As Variant Dim i As Integer Worksheets("サンプル果物表").Select fruits = Split(Range("E2").Value, " ") For i = 0 To UBound(fruits) MsgBox fruits(i) Range("B" & 2 + i).Value = fruits(i) Next i End Sub
Join
Sub 配列結合() Dim fruits As Variant Worksheets("サンプル果物表").Select fruits = Split(Range("E2").Value, " ") Range("E5").Value = Join(fruits, ",") End Sub
VBA練習5
- Format
- Time
- ScreenUpdating
Sub 連番作成1() Dim i As Integer Range("G2").Value = Format(Time, "hh:mm:ss") For i = 0 To 9999 Range("B" & 3 + i).Value = "Name" & i + 1 Next i Range("H2").Value = Format(Time, "hh:mm:ss") MsgBox ("処理終了") End Sub
Sub 連番作成2() Dim i As Integer Range("D2").Value = Format(Time, "hh:mm:ss") Application.ScreenUpdating = False For i = 0 To 9999 Range("B" & 3 + i).Value = "Name" & i + 1 Next i Application.ScreenUpdating = True Range("E2").Value = Format(Time, "hh:mm:ss") MsgBox ("処理終了") End Sub
Sub 連番作成3() Dim i As Integer Range("G3").Value = Format(Time, "hh:mm:ss") Range("B3").Select For i = 0 To 9999 ActiveCell.Value = "Name" & i + 1 ActiveCell.Offset(1, 0).Select Next i Range("H3").Value = Format(Time, "hh:mm:ss") MsgBox ("処理終了") End Sub
Sub 連番作成4() Dim i As Integer Range("D3").Value = Format(Time, "hh:mm:ss") Application.ScreenUpdating = False Range("B3").Select For i = 0 To 9999 ActiveCell.Value = "Name" & i + 1 ActiveCell.Offset(1, 0).Select Next i Application.ScreenUpdating = True Range("E3").Value = Format(Time, "hh:mm:ss") MsgBox ("処理終了") End Sub
Sub 連番クリア() Range("B3:B1002").Clear End Sub
プロシージャ | 画面更新 | 処理時間 |
---|---|---|
連番作成1 | あり | 2秒 |
連番作成2 | なし | 2秒 |
連番作成3 | あり | 1分11秒 |
連番作成4 | なし | 2秒 |
VBA練習6
WorksheetFunction
Sub 新規データチェック() Dim todayData As String Range("B2").Select Do While ActiveCell.Value <> "" todayData = ActiveCell.Value If WorksheetFunction.CountIf(Range("A:A"), todayData) < 1 Then ActiveCell.Offset(0, 1).Value = "New" End If ActiveCell.Offset(1, 0).Select Loop End Sub
列の選択
列Aのすべて
Columns("A").Select Columns(1).Select Range("A:A").Select
複数列の選択
range(Columns(2), Columns(3)).Select Range("A:C").Select Range("A:A, C:C, E:F").Select
列Bの2行目から空白前の行まで
Range("B2").Select Range(Selection, Selection.End(xlDown)).Select
列選択の解除
- どこかセルを選択する
Range("A1").Select
【今日の積み上げ】
- Excel マクロ基本操作