|
初心者ですが今エクセルで患者さまデータを作成しており、ユーザーフォームを使って患者さま情報を一目みてわかるようにしています。オートフィルターとスクロールバーを同期させてテキストバックスに反映させるようにしているのですが、ユーザーフォームに入力すれば直接セルに入力できるようにするにはどうしたら良いでしょうか。記述は下記のとおりです。
Private Sub ScrollBar1_Change()
SelectRow→サブルーチン
For i = 1 To 65
Me.Controls("textbox" & CStr(i)).Value = Selection.Cells(1, i)
Next
End Sub
Private Sub UserForm_Initialize()
ScrollBar1.Min = 1
ScrollBar1.Max = CountRows()→Functionのプロシージャ
ScrollBar1.LargeChange = ScrollBar1.Max \ 10 + 1
ScrollBar1.Value = 1
SelectRow→サブルーチン
For i = 1 To 65
Me.Controls("textbox" & CStr(i)).Value = Selection.Cells(1, i)
Next
End Sub
Sub SelectRow()
Dim iRows As Long
iRows = 0
For i = 5 To ActiveSheet.UsedRange.Rows.Count
If Not Rows(i).Hidden Then→表示されている行のみカウント
iRows = iRows + 1
If iRows = ScrollBar1.Value Then→相対位置を判定
ActiveSheet.Rows(i).Select
Exit For
End If
End If
Next i
End Sub
Function CountRows() As Long
Dim iRows As Long
iRows = 0
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If Not Rows(i).Hidden Then
iRows = iRows + 1
End If
Next i
CountRows = iRows→戻り値を設定
End Function
具体的な記述があればありがたいです!
|
|