|
▼ichinose さん:
色々教えて頂きありがとう御座います。
なんとか、自分の望んだ通りにマクロが動いてくれました。
また何かありましたら、宜しく御願い致します。
>▼hono1215 さん:
>>▼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
>>
>>これではエラーがでるので、お門違いな事をやっているのでしょう
>お門違いではないですが、まず、エラーがどの行でどんな内容のエラーが表示されるのか
>記述してください。
>
>
>>>>
>>>>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
|
|