With ActiveSheet.Range("A:A")
Set vntFoundCell = .Find(What:="*", _
After:=.Item(1), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious)
End With
If Not vntFoundCell Is Nothing Then
lngRow = vntFoundCell.Row + 1
Else
lngRow = 1
End If
Sub 最終行()
Dim E_rw As Range
Set E_rw = Cells(Rows.Count, "A").End(xlUp)
MsgBox ("Aの最終行は" & E_rw.Row & "です")
End Sub
をマクロのALT+F11の標準モジュールに
コピー貼り付けましたが、実行しても動作しません。
教えてください。
因みに私のエクセルはオフイス2000
Win Meです。
Option Explicit
Sub Sample()
Dim objCol As Range
Dim objRng As Range
Set objCol = Columns("A")
With objCol
Set objRng = .Find(What:="*", After:=.Cells(1), _
LookIn:=xlValues, Searchorder:=xlByRows, _
SearchDirection:=xlPrevious)
End With
MsgBox "最終行は" & objRng.Row & "です"
Set objCol = Nothing: Set objRng = Nothing
End Sub
Option Explicit
Sub 最終行()
Dim objCol As Range
Dim objRng As Range
Set objCol = Columns("A")
With objCol
Set objRng = .Find(What:="*", After:=.Cells(1), _
LookIn:=xlValues, Searchorder:=xlByRows, _
SearchDirection:=xlPrevious)
End With
If Not objRng Is Nothing Then
MsgBox "最終行は" & objRng.Row & "です"
Else
Exit Sub
End If
Set objCol = Nothing: Set objRng = Nothing
End Sub
Sub A_001()
Dim 貴方の年齢 As Integer
貴方の年齢 = InputBox(Prompt:="貴方の数え年を入力してください。")
MsgBox"西暦" & 生まれた年(貴方の年齢) & "年生まれですね。"
End Sub
'-----------
'ここまではわかりますが、これから下がわかりません。
'(X As Integer)は宣言なのですか。
'ここに出てくる X は何でしょうか、なぜ X を引かなくてはなりませんか。
'次に関数 Year(Date)ですが、普通にセルに入れるとエラーになりますが
'VBA関数と普通の関数では書式が異なりますか。
'-----------
Function 生まれた年(X As Integer)
生まれた年 = Year(Date) - X
End Function
(X as integer)は宣言ではありますが、普通のプロシージャ
とは違います
functionプロシージャだと言う事です。 これはエクセルで言う所の
関数になります。
つまり(x as integer)は引数になります。
使い方の例:
Sub A_001()
Dim x As Integer
x = InputBox(Prompt:="貴方の数え年を入力してください。")
Call 生まれた年(x)
End Sub
Function 生まれた年(x As Integer)
生まれた年 = Year(Date) - x
MsgBox "あなたの生まれた年は" & 生まれた年 & "年ですね?"
End Function