Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11848 / 76734 ←次へ | 前へ→

【70415】なぜかExcel2010だけ強制終了します。
質問  すいまーひろ  - 11/11/15(火) 10:54 -

引用なし
パスワード
   Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, mozi As Variant, zumen As Variant
  Set ws1 = Worksheets(1)
  Set ws2 = Worksheets(2)
  Set ws3 = Worksheets(3)
  If Target <> ws3.Range(Target.Address) Then Exit Sub
  If Target.Column = 1 Then Exit Sub
  If Target.Column > 4 Then Exit Sub
  If Target.Row < 3 Then Exit Sub
  If Target = "" Then Exit Sub
  If Target.Column = 2 Or Target.Column = 4 Then
    Select Case Left(Target, 1)
      Case "J"
        mozi = "\FJ\" & Target
      Case "M"
        mozi = "\FM\" & Target
      Case "P"
        mozi = "\FP\" & Target
      Case Else
        mozi = "\FX\" & Target
    End Select
    zumen = ws2.Range("A1") & "DB" & mozi & "\" & Target & ".pdf"
    If Dir(zumen) <> "" Then
      If MsgBox("組立図面を見ますか?", vbQuestion + vbYesNo) = vbYes Then
        ws2.Hyperlinks.Add Anchor:=ws2.Range("AA10"), Address:=zumen
        ws2.Range("AA10").Hyperlinks(1).Follow
        ws2.Range("AA10").Hyperlinks(1).Delete
      End If
    End If
    zumen = ws2.Range("A1") & "DB" & mozi & "\来歴書DB.xls"
    If Dir(zumen) <> "" Then
      If MsgBox("来歴書を見ますか?", vbQuestion + vbYesNo) = vbYes Then
        ws2.Range("A12") = ws2.Range("A1") & "DB" & mozi & "\"
        ws2.Range("A13") = zumen
        If Dir(ws2.Range("A1") & "Prg\来歴書.xls") = "" Then
          MsgBox ws2.Range("A1") & "Prg\来歴書.xls が見当たりません。大至急管理者に連絡して下さい。"
          Application.ScreenUpdating = True
          Application.EnableEvents = True
          Exit Sub
        End If
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        FileCopy ws2.Range("A1") & "Prg\来歴書.xls", "C:\Fistemp\raireki.xls"
        Workbooks.Open "C:\Fistemp\raireki.xls"
        ws2.Range("A:A").Copy Workbooks("raireki.xls").Worksheets(2).Range("A:A")
        Workbooks("raireki.xls").Worksheets(2).Range("A112") = "oshigoto"
        Workbooks("raireki.xls").Close savechanges:=True
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Workbooks.Open "C:\Fistemp\raireki.xls"
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Exit Sub
      End If
    Else
      MsgBox zumen & "が見当たりません。大至急管理者に連絡して下さい。"
      Application.ScreenUpdating = True
      Application.EnableEvents = True
      Exit Sub
    End If
    If ws2.Range("A5") = "設計部" Then
      If MsgBox("PDF図面フォルダを開きますか?", vbQuestion + vbYesNo) = vbYes Then
        zumen = ws2.Range("A1") & "DB" & mozi
        If Dir(zumen & "\") = "" Then
          MsgBox zumen & "フォルダが見当たりません。大至急管理者に連絡して下さい。"
          Application.ScreenUpdating = True
          Application.EnableEvents = True
          Exit Sub
        End If
        Shell "C:\WINDOWS\explorer.exe " & zumen, vbNormalFocus
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Exit Sub
      End If
    End If
    If Dir("C:\WINDOWS\explorer.exe") <> "" Then
      If MsgBox("資料フォルダを開きますか?", vbQuestion + vbYesNo) = vbYes Then
        zumen = ws2.Range("A2") & "図面" & mozi
        If Dir(zumen & "\") = "" Then
          MsgBox zumen & "フォルダが見当たりません。大至急管理者に連絡して下さい。"
          Application.ScreenUpdating = True
          Application.EnableEvents = True
          Exit Sub
        End If
        Shell "C:\WINDOWS\explorer.exe " & zumen, vbNormalFocus
      End If
    End If
  ElseIf Target.Column = 3 Then
    zumen = ws2.Range("A1") & "手配書\" & Target & ".pdf"
    If Dir(zumen) <> "" Then
      If MsgBox("手配書を見ますか?", vbQuestion + vbYesNo) = vbYes Then
        ws2.Hyperlinks.Add Anchor:=ws2.Range("AA10"), Address:=zumen
        ws2.Range("AA10").Hyperlinks(1).Follow
        ws2.Range("AA10").Hyperlinks(1).Delete
      End If
    End If
    If Dir("C:\WINDOWS\explorer.exe") <> "" Then
      If MsgBox("手配書フォルダを開きますか?", vbQuestion + vbYesNo) = vbYes Then
        zumen = ws2.Range("A1") & "手配書\" & Target
        If Dir(zumen & "\") = "" Then
          MsgBox zumen & "手配書フォルダが見当たりません。大至急営業部に連絡して下さい。"
          Application.ScreenUpdating = True
          Application.EnableEvents = True
          Exit Sub
        End If
        Shell "C:\WINDOWS\explorer.exe " & zumen, vbNormalFocus
      End If
    End If
  End If
  Application.ScreenUpdating = True
  Application.EnableEvents = True
End Sub

ど素人が作ったものなので、醜くてすいません。
図面番号が書かれたセルをダブルクリックすると、関連するPDF図面やフォルダを開いたり、別のブックに移動したりします。
2003で作成し、問題なく動いていました。
最近OSが7の32bit版 Excelは2010になりました。
互換モードで動かしています。
すべてのMsgBoxにNoと答えると、
「Excelは動作を停止しました。」
「問題が発生したため、・・・」
で、強制終了してしまいます。
End Sub のひとつ前にMsgBoxを入れると、そのメッセージは表示されます。
全く解決方法が見つかりません。

御教授よろしくお願いいたします。

3 hits

【70415】なぜかExcel2010だけ強制終了します。 すいまーひろ 11/11/15(火) 10:54 質問
【70422】Re:なぜかExcel2010だけ強制終了します。 Jaka 11/11/15(火) 15:26 発言
【70423】Re:なぜかExcel2010だけ強制終了します。 すいまーひろ 11/11/15(火) 15:53 発言
【70433】Re:なぜかExcel2010だけ強制終了します。 Jaka 11/11/16(水) 9:39 発言
【70436】Re:なぜかExcel2010だけ強制終了します。 n 11/11/16(水) 12:44 発言
【70444】Re:なぜかExcel2010だけ強制終了します。 すいまーひろ 11/11/16(水) 17:17 お礼

11848 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free