|
▼ichinose さん:
早速の御教授ありがとう御座います。
>モジュールレベルで宣言
は調べて理解できました。
その後、更新ボタンをユーザーフォームに配置しました
更新する際の記述が解らないのですが、少し自分で調べてみます。
Private Sub CommandButton3_Click()
Value = UserForm1.TextBox3.Value
FoundCell.Offset(0, -3).Value = UserForm1.TextBox1.Value
FoundCell.Offset(0, -2).Value = UserForm1.TextBox2.Value
FoundCell.Offset(0, 1).Value = UserForm1.TextBox4.Value
FoundCell.Offset(0, 4).Value = UserForm1.TextBox5.Value
End Sub
これではエラーがでるので、お門違いな事をやっているのでしょう…
>▼hono1215 さん:
>おはようございます。
>
>>下記記述で、ユーザーフォームから検索。
>>該当データをユーザーフォーム上に呼び出しています。
>>ここから、呼び出したデータを修正。元のセルに更新保存を行いたいのですが、可能でしょうか?
>
>提示されたコード内で、ユーザーに検索文字列を入力させ、
>その文字列で特定シートの指定セル範囲を検索していますね?
>そこで見つかったセルを又は、そのセルのアドレスをデータ修正後まで
>保持しておけば、元セルデータを戻すことは可能です。
>検索して見つかったセルは、FoundCellという変数に入っていますね?
>この変数は、プロシジャーレベル宣言された変数ですから、
>CommandButton2_Clickというプロシジャーの実行が終了すれば、変数そのものが
>無くなってしまいます。
>プロシジャーの実行が終了しても値を保持するには、この変数を
>モジュールレベルで宣言することです。
>
>では、モジュールレベルで変数を宣言するとは、どうすればよいか?
>
>
>>
>>Private Sub CommandButton2_Click()
>>Dim SearchKey As String
>>Dim SearchArea As Range
>Dim FoundCell As Range 'これをこのモジュールに1行目に宣言する
> 'プロシジャーの1行目ではなく、モジュールの1行目です
>>Dim ws As Worksheet, fndflg As Boolean
>>'検索語入力
>>SearchKey = Application.InputBox( _
>>Prompt:="LotNo,を入力して下さい。", Type:=2)
>>If SearchKey = "" Or SearchKey = "False" Then
>>Exit Sub
>>End If
>>'検索処理
>>'検索範囲
>>fndflg = False
>>For Each ws In Worksheets
>>If ws.Name Like "*P*" Then
>>Set SearchArea = ws.Range(ws.Range("d5"), ws.Range("d5").End(xlDown))
>>Set FoundCell = SearchArea.Find( _
>>What:=SearchKey, _
>>SearchOrder:=xlByRows, _
>>MatchCase:=False)
>>'見つかった場合の処理
>>If Not FoundCell Is Nothing Then
>>
>>fndflg = True
>>Exit For
>>End If
>>End If
>>Next
>>If fndflg = True Then
>>MsgBox FoundCell.Address
>>UserForm1.TextBox3.Value = FoundCell.Value
>>UserForm1.TextBox1.Value = FoundCell.Offset(0, -3).Value
>>UserForm1.TextBox2.Value = FoundCell.Offset(0, -2).Value
>>UserForm1.TextBox4.Value = FoundCell.Offset(0, 1).Value
>>UserForm1.TextBox5.Value = FoundCell.Offset(0, 4).Value
>>UserForm1.ComboBox2.Value = ws.Name
>>Else
>>MsgBox "該当は存在しません。", vbCritical
>>End If
>>Set SearchArea = Nothing
>>Set FoundCell = Nothing
>>
>>End Sub
>
>このようにすると、戻すセルは、FoundCellにあるのですから、
>後は考えてください。
|
|