Skip to content

Commit

Permalink
2020/11/12(thu) RelaxTools-Addin Version 4.26.1(RustRemover)
Browse files Browse the repository at this point in the history
◇機能追加
・オプションに「Excel常駐モード」を追加。
 起動時のレスポンス向上のため、ブックをすべて閉じてもExcelを終了しないようにする。
 Excelを終了するときには最小化されている空のウィンドウを閉じてください。
 副作用がありましたら使用を止めてください。
・Tortoiseシリーズの初期表示を非表示に変更。
◇バグ修正
・行削除で、UsedRange外を削除した場合にエラーになる不具合を修正。
  • Loading branch information
RelaxTools committed Nov 12, 2020
1 parent 995d018 commit 36538d4
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 19 deletions.
Binary file modified RelaxTools.xlam
Binary file not shown.
11 changes: 9 additions & 2 deletions Source/src/Form/frmCommonOption.frm
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,14 @@ Private Sub cmdOk_Click()
Call SaveSetting(C_TITLE, "Option", "NotHoldFormat", chkNotHoldFormat.Value)
Call SaveSetting(C_TITLE, "Option", "ClipboardSleep", txtSleep.Text)

Call SaveSetting(C_TITLE, "Option", "ExitMode", chkExitMode.Value)
'常駐モード
Call SaveSetting(C_TITLE, "Option", "RegidentMode", chkRegidentMode.Value)

If chkRegidentMode.Value Then
ThisWorkbook.Regident
Else
ThisWorkbook.Unregident
End If

Logger.Level = cboLogLevel.ListIndex

Expand Down Expand Up @@ -120,7 +127,7 @@ Private Sub UserForm_Initialize()

chkOnRepeat.Value = CBool(GetSetting(C_TITLE, "Option", "OnRepeat", True))
chkNotHoldFormat.Value = CBool(GetSetting(C_TITLE, "Option", "NotHoldFormat", False))
chkExitMode.Value = CBool(GetSetting(C_TITLE, "Option", "ExitMode", False))
chkRegidentMode.Value = CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False))

strBuf = ""
strBuf = strBuf & "・セルの最後に文字列挿入" & vbCrLf
Expand Down
53 changes: 50 additions & 3 deletions Source/src/Microsoft Excel Objects/ThisWorkbook.cls
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,23 @@ Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hWnd As LongPtr,

Private Const SW_HIDE As Long = 0
Private Const SW_FORCEMINIMIZE = 11

Private TV As TaskTrayView
Private MultiProcess As Boolean
'--------------------------------------------------------------
' ブックオープンイベント
'--------------------------------------------------------------
Private Sub Workbook_Open()

Logger.LogBegin "Workbook_Open"

'CreateObjectでRelaxToolsが開かれた場合
If Application.visible Then
MultiProcess = False
Else
MultiProcess = True
End If

'情報ログの出力
Logger.LogInfo vbCrLf & getVersionInfo

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

Set mColSection = rlxInitSectionSetting()

'Excel常駐
Me.Regident

Logger.LogFinish "Workbook_Open"

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

Call DeleteTemporaryFile

'終了モード
If CBool(GetSetting(C_TITLE, "Option", "ExitMode", False)) Then
'常駐モード
If CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False)) And MultiProcess = False Then
If Workbooks.Count > 0 Then
Dim WB As Workbook
For Each WB In Workbooks
WB.Close
Next
' Workbooks.Add
ShowWindow Application.hWnd, SW_FORCEMINIMIZE
DoEvents
Cancel = True
Else
If MsgBox("Excelを終了します。よろしいですか?", vbQuestion + vbOKCancel, C_TITLE) <> vbOK Then
' ShowWindow Application.hwnd, SW_FORCEMINIMIZE
' DoEvents
Cancel = True
Exit Sub
End If

'ショートカットの削除
Call removeShortCutKey

Me.Unregident

End If
Else
'ショートカットの削除
Call removeShortCutKey
End If

Expand Down Expand Up @@ -764,5 +790,26 @@ e:
Application.DisplayAlerts = blnDisplayAlerts
MsgBox Err.Description, vbOKOnly + vbCritical, C_TITLE
End Sub

'--------------------------------------------------------------
' Excel常駐コマンド
'--------------------------------------------------------------
Public Sub Regident()
'常駐モード
If CBool(GetSetting(C_TITLE, "Option", "RegidentMode", False)) And MultiProcess = False Then
Set TV = New TaskTrayView
TV.AddIcon Application.hWnd, "Excel常駐モード"
TV.ShowBalloon "Excel常駐モード" & vbCrLf & "完全に終了させたい場合は、最小化されている空のウィンドウを閉じてください。"
End If
End Sub
'--------------------------------------------------------------
' Excel常駐コマンドの解除
'--------------------------------------------------------------
Public Sub Unregident()
'常駐モードの解除
If TV Is Nothing Then
Else
TV.DeleteIcon
Set TV = Nothing
End If
End Sub

1 change: 0 additions & 1 deletion Source/src/Modules/basCommon.bas
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ Attribute VB_Name = "basCommon"
Option Explicit
Option Private Module


' 32-bit Function version.
' ドライブ名からネットワークドライブを取得
#If VBA7 And Win64 Then
Expand Down
6 changes: 4 additions & 2 deletions Source/src/Modules/basMacro.bas
Original file line number Diff line number Diff line change
Expand Up @@ -237,14 +237,16 @@ Sub lineDel()

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

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

mUndo.sourceRange.Copy mUndo.destRange

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

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

Application.CutCopyMode = False
Application.ScreenUpdating = True
Expand Down
16 changes: 12 additions & 4 deletions Source/src/Modules/basRibbon.bas
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,12 @@ End Function
'--------------------------------------------------------------------
Sub tabGetVisible(control As IRibbonControl, ByRef visible)

visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), True)

'Tortoiseシリーズは初期値、非表示
If InStr(control.id, "Tortoise") > 0 Then
visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), False)
Else
visible = GetSetting(C_TITLE, "Ribbon", Replace(control.id, "Tab", ""), True)
End If
End Sub
'--------------------------------------------------------------------
' スシ表示取得
Expand All @@ -242,8 +246,12 @@ End Sub
'--------------------------------------------------------------------
Sub tabGetPressed(control As IRibbonControl, ByRef returnValue)

returnValue = GetSetting(C_TITLE, "Ribbon", control.id, True)

'Tortoiseシリーズは初期値、非表示
If InStr(control.id, "Tortoise") > 0 Then
returnValue = GetSetting(C_TITLE, "Ribbon", control.id, False)
Else
returnValue = GetSetting(C_TITLE, "Ribbon", control.id, True)
End If
End Sub
'--------------------------------------------------------------------
' リボン表示設定
Expand Down
15 changes: 8 additions & 7 deletions Version.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
2020/11/10(tue) RelaxTools-Addin Version 4.26.0(RustRemover)
2020/11/12(thu) RelaxTools-Addin Version 4.26.1(RustRemover)
◇機能追加
・オプションに「終了モード」を追加。
 ブックをすべて閉じてもExcelを終了しないようにする。
 Excelを終了するときには最小化されているブック表示の無いウィンドウを閉じてください。
 不用意に閉じてしまうと、Excelの起動に時間がかかるため、
 起動時のレスポンス向上になります。副作用がありましたら
 使用を止めてください。
・オプションに「Excel常駐モード」を追加。
 起動時のレスポンス向上のため、ブックをすべて閉じてもExcelを終了しないようにする。
 Excelを終了するときには最小化されている空のウィンドウを閉じてください。
 副作用がありましたら使用を止めてください。
・Tortoiseシリーズの初期表示を非表示に変更。
◇バグ修正
・行削除で、UsedRange外を削除した場合にエラーになる不具合を修正。

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

0 comments on commit 36538d4

Please sign in to comment.