|    | 
     >でも、On Error GoTo 〜 のこの使い方はわかるんですけど、On Error GoTo〜 や、On Error Resume Next の記述がない場合(その作り方が問題ですよね)、「なんでそんな所に飛ぶの?」というような場所(他のモジュールとか)に飛んでる場合があって、すごく不可解なのです。 
なんて応対したらいいのか解んないけど、 
私は、On Error GoTo 〜の方が使いづらいです。 
使わないので今一解ってませんが、飛ばされた後、Resume使って同じ位置の戻らないとエラーがクリアできないから...。 
On Error Resume Next だと、エラーフラグというがエラーナンバーをクリアするだけで済みます。 
 
Sub aaaa() 
  On Error Resume Next 
  Sheets("Sheet200").Select 
  If Err Then 
    If MsgBox("シートがありません。" & vbLf & _ 
       "作りますか?", vbYesNo, vbQuestion) = vbYes Then 
     Err.Clear 
     Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "ああああ" 
    Else 
     MsgBox "中止" 
     Exit Sub 
    End If 
  End If 
End Sub 
 
それと、更新日ですが97以上ならファイルプロパティから取れました。 
こちらはファイルが開いてないとダメですが。 
 
Sub 最終更新日() 
  Dim OPWB As Workbook, BDP As Object, FNm As String 
  'FNm = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\pprprp.xls" 
  'FNm = "pprprp.xls" 
  FNm = Application.GetOpenFilename("Excelファイル (*.xls), *.xls") 
  If FNm = "False" Then Exit Sub 
   
  Application.ScreenUpdating = False 
  On Error Resume Next 
  'Set OPWB = Workbooks.Open(FNm) 
  Set OPWB = Workbooks(FNm) 
  For Each BDP In OPWB.BuiltinDocumentProperties 
    'i = i + 1 
    'ThisWorkbook.Sheets(1).Range("A" & i).Value = BDP.Name 
    'ThisWorkbook.Sheets(1).Range("B" & i).Value = OPWB.BuiltinDocumentProperties(BDP.Name).Value 
    'Last save time 
    If BDP.Name = "Last save time" Then 
      'Win98se & EXL97だとエラーになっていた?。 
      'Win2000 & EXL97だとEmpty 
      'EXL2000以上じゃないとダメ? 
      TTM = OPWB.BuiltinDocumentProperties(BDP.Name).Value 
      MsgBox "最終更新日、つまり最終保存日" & TTM 
 
      Exit For 
    End If 
  Next 
  OPWB.Close (False) 
  Set OPBW = Nothing 
  Application.ScreenUpdating = True 
End Sub 
 | 
     
    
   |