| 
    
     |  | ▼こうちゃん さん: すみません。ご教示に従いうまく行くように思ったのですが
 何故か If Err.Number=91 Then を使うと
 2の処理でerrorすると 3の処理が errorでないのに error として 4の処理に飛んでしまいます。on error goto だと 2回目のerrorでは 前に申しましたように マクロが中断されてしまいます。find処理を find 出来ないときにも 無事に4回行う方法は無いでしょうか?
 
 
 >hisaoさん、こんにちは
 >
 >レスがつかないようなので・・
 >
 >>何故かerrorが出て脱出できません。構文の誤りをお教え下さい。
 >On Error GoToで飛んだ先(エラー処理ルーチン)でさらにエラーが発生すると正常にGoTo処理されません。
 >
 >このような処理の場合通常はモジュールの先頭で
 >
 >On Error Resume Next
 >
 >を記載しておいて、Err.Numberにより処理を分岐します。
 >例えばこんな感じ・・
 >ただしエラーナンバーは発生する可能性のあるものを定義してください。
 >ここでは、「オブジェクト変数または With ブロック変数が設定されていません。」エラーを想定して例示しています。
 >また、GoToもできれば使用しないほうがいいと思いますので、その点は再考をお勧めします。
 >
 >#ラベルに日本語は好ましくないように思いますがいかがでしょうか?>諸氏
 >
 >
 >>Sub 工番集計()
 >
 >On Error Resume Next
 >
 >>p = InputBox("工番を入力して下さい")
 >>
 >>'原価集計から抽出
 >>
 >>Sheets("原価集計").Select
 >>a = Range("A2500").End(xlUp).Row
 >>b = Range("HA2").End(xlToLeft).Column
 >>Range(Cells(1, 1), Cells(a, b)).Name = "kouban"
 >>Range("KOUBAN").Select
 >'On Error GoTo zenkouban この行は削除
 >>  Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
 >>    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
 >>    False).Activate
 >
 >If Err.Number=91 Then
 > GoTo zenkouban
 >End If
 >
 >>ActiveCell.Offset(0, b - 1).Select
 >>Selection.ShowDetail = True
 >>Q = ActiveSheet.Name
 >>L = Range("a50000").End(xlUp).Row
 >>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 >>    Q & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C1", _
 >>    TableName:="ピボットテーブル2"
 >>Sheets("原価計算").Select
 >>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
 >>  With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("仕入先")
 >>    .Orientation = xlRowField
 >>    .Position = 1
 >>  End With
 >>  With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("税抜金額")
 >>    .Orientation = xlDataField
 >>    .Position = 1
 >>    .Function = xlSum
 >>  End With
 >> Sheets(Q).Select
 >>ActiveWindow.SelectedSheets.Delete
 >>
 >>'昨年原価からの抽出
 >>
 >>zenkouban:
 >>Sheets("昨年原価").Select
 >>a = Range("A2500").End(xlUp).Row
 >>b = Range("HA2").End(xlToLeft).Column
 >>Range(Cells(1, 1), Cells(a, b)).Name = "zenkouban"
 >>Range("zenKOUBAN").Select
 >>
 >'On Error GoTo 注文台帳
 >>  Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
 >>    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
 >>    False).Activate
 >If Err.Number=91 Then
 > GoTo 注文台帳
 >End If
 >>ActiveCell.Offset(0, b - 1).Select
 >>Selection.ShowDetail = True
 >>r = ActiveSheet.Name
 >>L = Range("a50000").End(xlUp).Row
 >>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 >>    r & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C3", _
 >>    TableName:="ピボットテーブル3"
 >>
 >>Sheets("原価計算").Select
 >>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
 >>  With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("仕入先")
 >>    .Orientation = xlRowField
 >>    .Position = 1
 >>  End With
 >>  With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("税抜金額")
 >>    .Orientation = xlDataField
 >>    .Position = 1
 >>    .Function = xlSum
 >>  End With
 >> Sheets(r).Select
 >>ActiveWindow.SelectedSheets.Delete
 >>
 >>'注文台帳からの抽出
 >>
 >>注文台帳:
 >>Sheets("原価集計2").Select
 >>
 >>a = Range("A2500").End(xlUp).Row
 >>b = Range("HA2").End(xlToLeft).Column
 >>Range(Cells(1, 1), Cells(a, b)).Name = "kouban"
 >>Range("KOUBAN").Select
 >'On Error GoTo 前注文
 >>  Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
 >>    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
 >>    False).Activate
 >If Err.Number=91 Then
 > GoTo 前注文
 >End If
 >>ActiveCell.Offset(0, b - 1).Select
 >>Selection.ShowDetail = True
 >>Q = ActiveSheet.Name
 >>L = Range("a50000").End(xlUp).Row
 >>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 >>    Q & "!R1c1:R" & L & "C19").CreatePivotTable TableDestination:="原価計算!r40C6", _
 >>    TableName:="ピボットテーブル4"
 >>Sheets("原価計算").Select
 >>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
 >>  With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("発注先")
 >>    .Orientation = xlRowField
 >>    .Position = 1
 >>  End With
 >>  With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("金額")
 >>    .Orientation = xlDataField
 >>    .Position = 1
 >>    .Function = xlSum
 >>  End With
 >> Sheets(Q).Select
 >>ActiveWindow.SelectedSheets.Delete
 >>
 >>'昨年原価2からの抽出
 >>
 >>前注文:
 >>Sheets("昨年原価2").Select
 >>a = Range("A2500").End(xlUp).Row
 >>b = Range("HA2").End(xlToLeft).Column
 >>Range(Cells(1, 1), Cells(a, b)).Name = "zenkouban"
 >>Range("zenKOUBAN").Select
 >>
 >'On Error GoTo 終わり
 >>
 >>
 >>  Selection.FIND(What:=p, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
 >>    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
 >>    False).Activate
 >If Err.Number=91 Then
 > GoTo 終わり
 >End If
 >>ActiveCell.Offset(0, b - 1).Select
 >>Selection.ShowDetail = True
 >>r = ActiveSheet.Name
 >>L = Range("a50000").End(xlUp).Row
 >>ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 >>    r & "!R1c1:R" & L & "C27").CreatePivotTable TableDestination:="原価計算!r40C8", _
 >>    TableName:="ピボットテーブル5"
 >>Sheets("原価計算").Select
 >>' ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
 >>  With ActiveSheet.PivotTables("ピボットテーブル5").PivotFields("発注先")
 >>    .Orientation = xlRowField
 >>    .Position = 1
 >>  End With
 >>  With ActiveSheet.PivotTables("ピボットテーブル5").PivotFields("金額")
 >>    .Orientation = xlDataField
 >>    .Position = 1
 >>    .Function = xlSum
 >>  End With
 >> Sheets(r).Select
 >>ActiveWindow.SelectedSheets.Delete
 >>Sheets("原価計算").Select
 >>Cells.Select
 >>
 >>  Selection.Columns.AutoFit
 >>
 >>終わり:
 >>
 >>End Sub
 
 
 |  |