|
GEN さん、かみちゃんさん(次回から、かみちゃんでよいですか?)
おはようござます。
>非常に早急なご返事ありがとうございます。
>内容をもう少し具体的に書きますと下記のような書き方だと、ダイアログを開くとデータの先頭セルを表示することとなってしまいます。ここをさわることで、前回ダイアログ終了前の表示をおこなうことができるのでしょうか。
>とりあえず、「ブックは、閉じないならば、Public変数にフォームを閉じるときの値を一時保存しておけばいい」という回答を参考にもう少し考えてみます。
まず、一箇所??というところもありますが、
>
>Sub Hyouji(Myline As Integer)
'データベースの指定された行の情報をダイアログに表示する
'ということでしたら、このプロシジャーを変更するのには反対です。
'このMylineを呼び出すプロシジャー側でMylineに表示する
'データを設定するということです。
'そうしないとこのプロシジャーの汎用性が狭まってしまいます。
> Dim MyRows As Integer
> MyRows = Form編集.Scroll移動.Value + 3
> Cells(MyRows, 1).Activate 'レコードの先頭セルの取得
> 'セルの値をコントロールに表示する
> Form編集.Textタイトル.Text = ActiveCell.Value
> ActiveCell.Offset(0, 1).Activate
> Form編集.Textアーティスト.Text = ActiveCell.Value
>
> If MaxLine = 0 Then 'レコードが存在しない場合
' ↑これは、ひょっとしてMyline?
> Form編集.Label行数 = "1/1"
> Else 'レコードが存在する場合
> Form編集.Label行数 = Form編集.Scroll移動.Value _
> & "/" & Myline
> End If
>End Sub
ここでいうMylineというパラメータ変数の実態である変数を
例えば、セルA1(どこかのシートの・・)に保存する仕様にしたとすると、
ユーザーフォームを閉じるタイミングで保存します。
Userform_terminateまたは、UserForm_QueryCloseが良いかと思います。
勿論、セルA1に値を移行した後に、ブックの保存ですよ!!
これでユーザーフォームを表示する時につまり上記のプロシジャーを
呼び出しているプロシジャーでMylineにセルA1の値を設定して
HyoujiをCALLする という方法です。
検討してみて下さい。
|
|