エラーなしで実行される32ビットXPマシン上のExcel2007でvbaプログラムを作成しました。ただし、64ビットServer 2008 R2リモートデスクトップサービスマシンで同じスプレッドシートを実行しようとすると、回復不能なエラーが発生します。問題を引き起こしているコードは次のとおりです。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandle
Dim MachPhone As String
Dim ConPhone As String
Select Case Target.Row
Case 12
MachPhone = PhoneFormat(Range("B12"))
Range("B12").Value = MachPhone
Case 13
ConPhone = PhoneFormat(Range("B13"))
Range("B13").Value = ConPhone
End Select
ErrHandle:
Exit Sub
Resume
End Sub
PhoneFormat関数は、電話番号の形式をチェックし、電話番号が何であるかがわからない場合は、形式化された電話番号または元の文字列を返します。