第19回「新規来訪者チェックシステムを作ろう!④」
前回ではざっくり説明をしました!
が、新しいものがいくつかありましたよね!
それぞれ説明していきますね!
① Cells(Rows.Count, 〇).End(xlUp).Row について
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To Cells(Rows.Count, 2).End(xlUp).Row
の部分で出てきたコードです。
これは〇列に入力してある一番下のセルの行数を返してくれる
というものです。
下のExcel表を例にしますね!
この場合
Cells(Rows.Count, 1).End(xlUp).Row の値は11となります。
また、
Cells(Rows.Count, 2).End(xlUp).Rowの値は15となります。
いかがでしょうか?なんとなくつかめましたか?
② 比較文字作成(〇) について
これは
If 比較文字作成(Cells(i + 1, 1)) = 比較文字作成(Cells(j + 1, 2)) Then
の部分で出てきたコードですね。
このコードはFunctionという機能を使うコードなんです。
じつは
Function 比較文字作成(ByVal item As String) As String
item = StrConv(item, vbNarrow + vbLowerCase)
item = Replace(item, " ", "")
比較文字作成 = item
End Function
というコードを書いていたんです。
ちなみにこのFunctionのコードの意味は
Function 比較文字作成(ByVal item As String) As String
⇒比較文字作成というFunctionを作ります
item = StrConv(item, vbNarrow + vbLowerCase)
⇒itemを全て半角(vbNarrow)かつ小文字(vbLowerCase)に変換してね
item = Replace(item, " ", "")
⇒itemの中にスペースがあったらスペースを無くしてね
比較文字作成 = item
⇒この変換後のitemを比較文字作成の結果としてね
End Function
という感じです!
簡単にいうと
1. 半角、小文字、スペースなしに変換する「比較文字作成()」を作成しておく
2. 比較文字(Cells(i + 1, 1))とすることでi+1行1列目の文字を
半角、小文字、スペースなしに変換する
という感じです。
③Call 〇〇について
Call 黄色が上
の部分で出てきましたね!
これは
「Sub 黄色が上」というプログラムを実行して!
という意味です。
ちなみに「Sub 黄色が上」というプログラムは以下のようになっています。
Sub 黄色が上()
Range("A2:A56").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range("A2:A56"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 0)
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:A56")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub
いつもなら意味を説明するのですが今回はしません!
その理由はまた今度しますね!
ちらっとこれは「マクロを記録する」という機能を使ったもので
つのかぼちゃが書いたものでなく
つのかぼちゃ's PCが書いたものなんです。
なんて優秀なんだ!
つのかぼちゃ's PC!!
ただこの「マクロを記録する」という機能、
そのまま使えることはほとんどありません。
その理由も今度まとめて説明しますね!
では今回はこんな感じで終わります!
おつかれさまでした!