Skip to content

Commit 36538d4

Browse files
committed
2020/11/12(thu) RelaxTools-Addin Version 4.26.1(RustRemover)
◇機能追加 ・オプションに「Excel常駐モード」を追加。  起動時のレスポンス向上のため、ブックをすべて閉じてもExcelを終了しないようにする。  Excelを終了するときには最小化されている空のウィンドウを閉じてください。  副作用がありましたら使用を止めてください。 ・Tortoiseシリーズの初期表示を非表示に変更。 ◇バグ修正 ・行削除で、UsedRange外を削除した場合にエラーになる不具合を修正。
1 parent 995d018 commit 36538d4

7 files changed

Lines changed: 83 additions & 19 deletions

File tree

RelaxTools.xlam

165 KB
Binary file not shown.

Source/src/Form/frmCommonOption.frm

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,14 @@ Private Sub cmdOk_Click()
8484
Call SaveSetting(C_TITLE, "Option", "NotHoldFormat", chkNotHoldFormat.Value)
8585
Call SaveSetting(C_TITLE, "Option", "ClipboardSleep", txtSleep.Text)
8686

87-
Call SaveSetting(C_TITLE, "Option", "ExitMode", chkExitMode.Value)
87+
'常駐モード
88+
Call SaveSetting(C_TITLE, "Option", "RegidentMode", chkRegidentMode.Value)
89+
90+
If chkRegidentMode.Value Then
91+
ThisWorkbook.Regident
92+
Else
93+
ThisWorkbook.Unregident
94+
End If
8895

8996
Logger.Level = cboLogLevel.ListIndex
9097

@@ -120,7 +127,7 @@ Private Sub UserForm_Initialize()
120127

121128
chkOnRepeat.Value = CBool(GetSetting(C_TITLE, "Option", "OnRepeat", True))
122129
chkNotHoldFormat.Value = CBool(GetSetting(C_TITLE, "Option", "NotHoldFormat", False))
123-
chkExitMode.Value = CBool(GetSetting(C_TITLE, "Option", "ExitMode", False))
130+
chkRegidentMode.Value = CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False))
124131

125132
strBuf = ""
126133
strBuf = strBuf & "・セルの最後に文字列挿入" & vbCrLf

Source/src/Microsoft Excel Objects/ThisWorkbook.cls

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,23 @@ Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hWnd As LongPtr,
5858

5959
Private Const SW_HIDE As Long = 0
6060
Private Const SW_FORCEMINIMIZE = 11
61+
62+
Private TV As TaskTrayView
63+
Private MultiProcess As Boolean
6164
'--------------------------------------------------------------
6265
' ブックオープンイベント
6366
'--------------------------------------------------------------
6467
Private Sub Workbook_Open()
6568

6669
Logger.LogBegin "Workbook_Open"
6770

71+
'CreateObjectでRelaxToolsが開かれた場合
72+
If Application.visible Then
73+
MultiProcess = False
74+
Else
75+
MultiProcess = True
76+
End If
77+
6878
'情報ログの出力
6979
Logger.LogInfo vbCrLf & getVersionInfo
7080

@@ -78,6 +88,9 @@ Private Sub Workbook_Open()
7888

7989
Set mColSection = rlxInitSectionSetting()
8090

91+
'Excel常駐
92+
Me.Regident
93+
8194
Logger.LogFinish "Workbook_Open"
8295

8396
End Sub
@@ -100,20 +113,33 @@ Private Sub Workbook_BeforeClose(Cancel As Boolean)
100113

101114
Call DeleteTemporaryFile
102115

103-
'終了モード
104-
If CBool(GetSetting(C_TITLE, "Option", "ExitMode", False)) Then
116+
'常駐モード
117+
If CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False)) And MultiProcess = False Then
105118
If Workbooks.Count > 0 Then
106119
Dim WB As Workbook
107120
For Each WB In Workbooks
108121
WB.Close
109122
Next
123+
' Workbooks.Add
110124
ShowWindow Application.hWnd, SW_FORCEMINIMIZE
111125
DoEvents
112126
Cancel = True
113127
Else
128+
If MsgBox("Excelを終了します。よろしいですか?", vbQuestion + vbOKCancel, C_TITLE) <> vbOK Then
129+
' ShowWindow Application.hwnd, SW_FORCEMINIMIZE
130+
' DoEvents
131+
Cancel = True
132+
Exit Sub
133+
End If
134+
135+
'ショートカットの削除
114136
Call removeShortCutKey
137+
138+
Me.Unregident
139+
115140
End If
116141
Else
142+
'ショートカットの削除
117143
Call removeShortCutKey
118144
End If
119145

@@ -764,5 +790,26 @@ e:
764790
Application.DisplayAlerts = blnDisplayAlerts
765791
MsgBox Err.Description, vbOKOnly + vbCritical, C_TITLE
766792
End Sub
767-
793+
'--------------------------------------------------------------
794+
' Excel常駐コマンド
795+
'--------------------------------------------------------------
796+
Public Sub Regident()
797+
'常駐モード
798+
If CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False)) And MultiProcess = False Then
799+
Set TV = New TaskTrayView
800+
TV.AddIcon Application.hWnd, "Excel常駐モード"
801+
TV.ShowBalloon "Excel常駐モード" & vbCrLf & "完全に終了させたい場合は、最小化されている空のウィンドウを閉じてください。"
802+
End If
803+
End Sub
804+
'--------------------------------------------------------------
805+
' Excel常駐コマンドの解除
806+
'--------------------------------------------------------------
807+
Public Sub Unregident()
808+
'常駐モードの解除
809+
If TV Is Nothing Then
810+
Else
811+
TV.DeleteIcon
812+
Set TV = Nothing
813+
End If
814+
End Sub
768815

Source/src/Modules/basCommon.bas

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ Attribute VB_Name = "basCommon"
3131
Option Explicit
3232
Option Private Module
3333

34-
3534
' 32-bit Function version.
3635
' ドライブ名からネットワークドライブを取得
3736
#If VBA7 And Win64 Then

Source/src/Modules/basMacro.bas

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,16 @@ Sub lineDel()
237237

238238
ThisWorkbook.Worksheets("Undo").Cells.Clear
239239

240-
Set mUndo.sourceRange = Intersect(Range(Cells(f, 1), Cells(t, Columns.Count - 1)), ActiveSheet.UsedRange)
240+
' Set mUndo.sourceRange = Intersect(Range(Cells(f, 1), Cells(t, Columns.Count - 1)), ActiveSheet.UsedRange)
241+
Set mUndo.sourceRange = Range(Cells(f, 1), Cells(t, Columns.Count - 1))
241242
Set mUndo.destRange = ThisWorkbook.Worksheets("Undo").Range(mUndo.sourceRange.Address)
242243

243244
mUndo.sourceRange.Copy mUndo.destRange
244245

245246
Rows(f & ":" & t).Delete xlUp
246247

247-
Set mUndo.sourceRange = Intersect(Range(Cells(f, 1), Cells(t, Columns.Count - 1)), ActiveSheet.UsedRange)
248+
' Set mUndo.sourceRange = Intersect(Range(Cells(f, 1), Cells(t, Columns.Count - 1)), ActiveSheet.UsedRange)
249+
Set mUndo.sourceRange = Range(Cells(f, 1), Cells(t, Columns.Count - 1))
248250

249251
Application.CutCopyMode = False
250252
Application.ScreenUpdating = True

Source/src/Modules/basRibbon.bas

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,12 @@ End Function
226226
'--------------------------------------------------------------------
227227
Sub tabGetVisible(control As IRibbonControl, ByRef visible)
228228

229-
visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), True)
230-
229+
'Tortoiseシリーズは初期値、非表示
230+
If InStr(control.id, "Tortoise") > 0 Then
231+
visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), False)
232+
Else
233+
visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), True)
234+
End If
231235
End Sub
232236
'--------------------------------------------------------------------
233237
' スシ表示取得
@@ -242,8 +246,12 @@ End Sub
242246
'--------------------------------------------------------------------
243247
Sub tabGetPressed(control As IRibbonControl, ByRef returnValue)
244248

245-
returnValue = GetSetting(C_TITLE, "Ribbon", control.id, True)
246-
249+
'Tortoiseシリーズは初期値、非表示
250+
If InStr(control.id, "Tortoise") > 0 Then
251+
returnValue = GetSetting(C_TITLE, "Ribbon", control.id, False)
252+
Else
253+
returnValue = GetSetting(C_TITLE, "Ribbon", control.id, True)
254+
End If
247255
End Sub
248256
'--------------------------------------------------------------------
249257
' リボン表示設定

Version.txt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
2020/11/10(tue) RelaxTools-Addin Version 4.26.0(RustRemover)
1+
2020/11/12(thu) RelaxTools-Addin Version 4.26.1(RustRemover)
22
◇機能追加
3-
・オプションに「終了モード」を追加。
4-
 ブックをすべて閉じてもExcelを終了しないようにする。
5-
 Excelを終了するときには最小化されているブック表示の無いウィンドウを閉じてください。
6-
 不用意に閉じてしまうと、Excelの起動に時間がかかるため、
7-
 起動時のレスポンス向上になります。副作用がありましたら
8-
 使用を止めてください。
3+
・オプションに「Excel常駐モード」を追加。
4+
 起動時のレスポンス向上のため、ブックをすべて閉じてもExcelを終了しないようにする。
5+
 Excelを終了するときには最小化されている空のウィンドウを閉じてください。
6+
 副作用がありましたら使用を止めてください。
7+
・Tortoiseシリーズの初期表示を非表示に変更。
8+
◇バグ修正
9+
・行削除で、UsedRange外を削除した場合にエラーになる不具合を修正。
910

1011
2020/11/03(tue) RelaxTools-Addin Version 4.25.6(RustRemover)
1112
◇バグ修正

0 commit comments

Comments
 (0)