|    | 
     ▼n さん: 
▼Abebobo さん: 
▼UO3 さん: 
 
色々ご回答ありがとうございます。 
長かったので、省略した部分を全て書きます。 
下記のことがしたいので、アドバイスお願いします。 
『会社名で検索して、ない時にはメッセージボックスを表示させ、 
 再試行のときは、別シートのその会社の行を削除して、再度UserForm2を開く。 
 キャンセルのときは、UserForm2を閉じる。』 
 
エラーは2つです。 
1.再試行のときは、再度UserForm2が開くのですが、 
 CommandButton3を押すと、 
 『オブジェクト変数またはWithブロック変数が設定されていません』と出ます。 
2.キャンセルのときは、すぐに 
 『オブジェクト変数またはWithブロック変数が設定されていません』と出ます。 
 
これで分かるでしょうか? 
 
Private Sub UserForm_Initialize() 
 
Dim a As Integer 
Dim x As Range 
Dim y As Range 
Dim z As Range 
 
Sheets("会社一覧").Select 
 
Set x = Sheets("会社一覧").Columns("B") _ 
    .Find(what:=Sheets("カウンター数一覧").Range("J1").Value, lookat:=xlWhole) 
 
x.Select 
 
a = Sheets("会社一覧").Range("B3").End(xlDown).row 
ComboBox1.RowSource = "会社一覧!B3:B" & a 
 
If x.Offset(1, 0) = "" Or Sheets("カウンター数一覧").Range("J1").Value = "" Then 
 ComboBox1.Value = Sheets("会社一覧").Range("B3").Value 
 TextBox2.Value = Sheets("会社一覧").Range("F3").Value 
 TextBox3.Value = Sheets("会社一覧").Range("H3").Value 
 TextBox5.Value = Sheets("会社一覧").Range("I3").Value 
 If Sheets("会社一覧").Range("G3").Value <> "" Then 
  TextBox4.Visible = True 
  TextBox4.Value = Sheets("会社一覧").Range("G3").Value & " 様" 
 Else 
  TextBox4.Visible = False 
  TextBox4.Value = "" 
 End If 
Else 
 ComboBox1.Value = x.Offset(1, 0).Value 
 TextBox2.Value = x.Offset(1, 4).Value 
 TextBox3.Value = x.Offset(1, 6).Value 
 TextBox5.Value = x.Offset(1, 7).Value 
 If x.Offset(1, 5).Value <> "" Then 
  TextBox4.Visible = True 
  TextBox4.Value = x.Offset(1, 5).Value & " 様" 
 Else 
  TextBox4.Visible = False 
  TextBox4.Value = "" 
 End If 
End If 
 
Label14.Caption = "" 
If x.Offset(1, -1).Value <> "" Then 
 Label14.Caption = "契約情報  " & x.Offset(1, -1).Value 
 Label14.ForeColor = RGB(255, 0, 0) 
 CommandButton2.SetFocus 
End If 
 
TextBox6.Value = Month(Date) - 1 
 
Sheets("カウンター数一覧").Select 
 
Set y = Sheets("カウンター数一覧").Columns("B") _ 
    .Find(what:=ComboBox1.Value, lookat:=xlWhole) 
Set z = Sheets("カウンター数一覧").Range("D2:O2") _ 
    .Find(what:=TextBox6.Value & "月", lookat:=xlWhole, MatchByte:=False) 
 
If Not y Is Nothing Then 
 y.Select 
 
 TextBox7.Value = Format(Sheets("カウンター数一覧") _ 
          .Cells(y.row, z.Column).Value, "#,##0") 
 
 If y.Offset(0, 1).Value = "モノクロ" Then 
  TextBox8.Value = Format(Sheets("カウンター数一覧") _ 
           .Cells(y.row + 2, z.Column).Value, "#,##0") 
  TextBox8.BackColor = &H80000005 
 Else 
  TextBox8.BackColor = &H8000000F 
 End If 
Else 
 msg = MsgBox("『カウンター数一覧』に該当の会社名がありません。" & vbCrLf & _ 
       "どちらかの処理をしてください。" & vbCrLf & "" & vbCrLf & _ 
       "  再試行ボタン⇒『会社一覧』から列削除します。" & vbCrLf & _ 
       "キャンセルボタン⇒2つのシートが一致するよう、" & vbCrLf & _ 
       "            何かしらの処理をしてください。 " _ 
       , vbRetryCancel + vbCritical, "シート同士の不一致") 
 If msg = vbRetry Then 
  Sheets("会社一覧").Rows(x.Offset(1, 0).row).Delete Shift:=xlUp 
  Unload UserForm2 
  UserForm2.Show 
 Else 
  Unload UserForm2 ←2.ここでエラーが出ます。 
 End If 
End If 
 
End Sub 
 
Private Sub CommandButton3_Click() 
 
Application.CutCopyMode = False 
Unload UserForm2 ←1.ここでエラーが出ます。 
 
End Sub 
 | 
     
    
   |