必要があって特定のエクセルファイルを開かせないことを模索していたのですがやっとできました。
Personal.xlsで
新規モジュールModule*に以下を記述
Public 開かせない As New Class1
'
Sub auto_open()
Set 開かせない.App = Application
End Sub
クラスモジュールclass1に以下を記述
Public WithEvents App As Application
'
Private Sub app_WorkbookOpen(ByVal 見るな As Workbook)
With Application
If Left(見るな.Name, 2) = "回覧" Then
.DisplayAlerts = False
.Quit
End If
End With
End Sub
またはアドインとして・・・・
アドインとして登録するブックの標準モジュールに以下を記述
Public evt As Class1
Workbookモジュールに以下を記述
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set evt = Nothing
End Sub
Private Sub Workbook_Open()
Set evt = New Class1
End Sub
Class1というクラスモジュールに以下を記述
Dim WithEvents app As Application
Private Sub app_WorkbookOpen(ByVal 見るな As Workbook)
With Application
If Left(見るな.Name, 2) = "回覧" Then
.DisplayAlerts = False
.Quit
End If
End With
End Sub
'======================================================
Private Sub Class_Initialize()
Set app = Application
End Sub
'======================================================
Private Sub Class_Terminate()
Set app = Nothing
End Sub
これをアドイン「.xla」として保存し、それを使えるようにしておく。
なぜこんなことを考えたかというとこの「特定のエクセルファイル」は多くの人にとても有用なファイルなのですがそれを多用して嫌味とも取れる使い方をする奴が一人いて皆が迷惑を被っているらしいのでその人間のPCに少し細工をしておこうというもの。
誰あろう「サンダルおやじ」のことですけどね、何でもかんでも回覧する困った奴で全員がすでにメールで受け取っている物まで回覧するのです。
ぶら下がっているだけで暇なものだから・・・・。
Personal.xlsで
新規モジュールModule*に以下を記述
Public 開かせない As New Class1
'
Sub auto_open()
Set 開かせない.App = Application
End Sub
クラスモジュールclass1に以下を記述
Public WithEvents App As Application
'
Private Sub app_WorkbookOpen(ByVal 見るな As Workbook)
With Application
If Left(見るな.Name, 2) = "回覧" Then
.DisplayAlerts = False
.Quit
End If
End With
End Sub
またはアドインとして・・・・
アドインとして登録するブックの標準モジュールに以下を記述
Public evt As Class1
Workbookモジュールに以下を記述
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set evt = Nothing
End Sub
Private Sub Workbook_Open()
Set evt = New Class1
End Sub
Class1というクラスモジュールに以下を記述
Dim WithEvents app As Application
Private Sub app_WorkbookOpen(ByVal 見るな As Workbook)
With Application
If Left(見るな.Name, 2) = "回覧" Then
.DisplayAlerts = False
.Quit
End If
End With
End Sub
'======================================================
Private Sub Class_Initialize()
Set app = Application
End Sub
'======================================================
Private Sub Class_Terminate()
Set app = Nothing
End Sub
これをアドイン「.xla」として保存し、それを使えるようにしておく。
なぜこんなことを考えたかというとこの「特定のエクセルファイル」は多くの人にとても有用なファイルなのですがそれを多用して嫌味とも取れる使い方をする奴が一人いて皆が迷惑を被っているらしいのでその人間のPCに少し細工をしておこうというもの。
誰あろう「サンダルおやじ」のことですけどね、何でもかんでも回覧する困った奴で全員がすでにメールで受け取っている物まで回覧するのです。
ぶら下がっているだけで暇なものだから・・・・。