|
>何度もすみません。教えていただいたコードを入れてみました。
>---------------------------------------------------------
>Private Sub GetData(lngRow As Long)
>
>' 1行分のListデータを各コントロールに代入
>
> With rngList.Offset(lngRow)
> .Activate
> If lngRow <= lngRows Then
> TextBox1.Text = .Offset(, 0).Value
> Else
> TextBox1.Text = lngMaxNum + 1
> End If
> TextBox2.Text = .Offset(, 1).Value
> Frame8.Tag = .Offset(, 2).Value
> SetOptionValue Frame8
> TextBox3.Text = .Offset(, 3).Value
> TextBox4.Text = .Offset(, 4).Value
> Frame2.Tag = .Offset(, 5).Value
> SetOptionValue Frame2
>
> End With
>
> 'スクロールバーの表示位置更新
> With ScrollBar1
> If .Value <> lngRow Then
> .Value = lngRow
> End If
> End With
>
> TextBox2.SetFocus
>
>End Sub
>------------------------------------------------
>
>上記の With rngList.Offset(lngRow) について、実行時エラーが出てしまいました。「オブジェクト変数またはWithブロック変数が設定されていません」と表示されました。
>
>どこかで、Dimを使ってオブジェクトの宣言をする必要がありますか?
UserFormのコードを記述するモジュールの先頭、「Option Explicit」の下に
以下の、宣言が記述されていますか?
Option Explicit
'探索Keyの有る列位置(基準位置からの列Offset)
Private Const clngKeys As Long = 0
'入力モードと表示モードの切り替え
Public blnInput As Boolean
'Listの先頭、最左の列見出しのセル位置
Private rngList As Range
'Listの行数(最終行)
Private lngRows As Long
'操作対象行位置(表示行)
Private lngCurrent As Long
'IDの最大値
Private lngMaxNum As Long
これが、モジュールレベル(今回はUserFormのモジュール全体で、使用可能な変数の宣言)の
変数宣言です
Reginaさんの最初の質問の以下の宣言と同じ事です(Option Explicitの上に書いてあるけど?)
>Dim 表示行 As Long
>Dim 最終行 As Long
>Option Explicit
|
|