Menu lạ trong EXCEL?

  • Thread starter Tuanktcdcn
  • Ngày gửi
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#1
I có một file Menu.xls (nhặt được của người khác). Trong file này có một menu pop up nằm trên menu của EXCEL, tôi muốn thay đổi hay xóa nó đi thì lần sau mở lại vẫn thấy, I không hiểu?. File này không hề có VBA.
Các bạn xem và giải thích giúp cho nhé!
 

Đính kèm

L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#2
To:Tuanktcdcn,
Chào Tuân,
Duyệt cũng đã thử file này. Đúng là không hề có code.
Duyệt đã thử một số điều sau:
1_Reset lại "Work sheet menu bar" , lưu lại, sau đó mở ra thì vẫn thấy.
2_Lưu lại với nhiều tên khác, sau đó mở ra tất cả các file này thì thấy hiện cũng nhiều menu, nhưng các menu này sẽ bị lỗi (Các sub-menu khi thì bị trùng lấp, khi thì menu của file này thì có, của file kia thì không,...).
3_Mình thử tạo một customer menu với cùng tên, nhưng không thêm vào các sub-menu. Sau đó lưu lại, mở file này trước các file trong phần 2, thì thấy menu này được điền các Sub-menu.
4_Cài lại chế độ bảo mật, thì mở file này ra menu vẫn xuất hiện mà không hề hỏi "Enable hay Disable".
...và còn một vài cái khác nữa.
Theo ý kiến của mình thì:
Theo thử nghiệm 1 và 3 thì thấy rằng, menu này được tạo ra sau khi workbook được mở. Không hề có code tạo menu trong VBE, + 4 điều này chứng tỏ menu được tạo ra không bằng đọan code nằm trong các module của workbook này.
....
Thông tin cuối cùng đây là file: Tilte của file
Chuong tirnh tinh TKKT va TDT cong trinh xay dung dien
Cuối cùng tôi không thể kết luận gì cả! Đang chờ các cao thủ.
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#3
Các thông tin về file Excel này:
Created: Yesterday, June 08, 2005, 11:33:08 PM ???
Tilte: Chuong tirnh tinh TKKT va TDT cong trinh xay dung dien ???
Bạn Tuan có thể nói rõ hơn được không về nguồn góc của file này???
Thân,
Lê Văn Duyệt
 
T

Tran Chau

Thành viên sơ cấp
23/11/04
149
0
0
59
TP Ho Chi Minh
#4
RemoveMenus.zip (12 April 2000, 10k, 8857 downloads) http://www.oaltd.co.uk/DLCount/DLCount.asp?file=RemoveMenus.zip
RemoveMenus is a utility for removing custom menus created by the Excel 5/95 menu editor from workbooks. When a workbook is converted to Excel 97/2000 format without first removing these menus there is no way to do so in Excel 97/2000. Converting back to Excel 5/95 format may not be a good option as Excel 97/2000 specific enhancements will be lost. Use File, Open to load the add-in. "Remove Menu Editor Edits" on the Tools menu will start it. The utility will work on closed workbooks only.
Rất tiếc là lúc nầy mình đang bận nên chưa text được. Về kỹ thuật tương tự nầy mình có biết 1 tác giả ở Kiên Giang, đã thương mại hóa soft trong phần mềm dự toán XDCB, ở khoảng 3 version đầu, từ 1999 tác giả dùng Macro4, Excel5, Excel 95, có thể xem được source.Trong khoảng 2 ver gần đây thì mình thấy các file gọn hơn nhiều, vẫn dùng file Excel, nhưng rât khó đọc code, tác giả có lập trang Web riêng cho down dùng thử các soft nầy
 
S

StonyHeartedMan

Thành viên sơ cấp
2/10/04
306
2
0
Hà nội
www.vnuni.net
#5
Các phần mềm dự toán XDCB viết trên Excel:

1. Phần mềm dự toán XDCB của cty ACITT JSC?
http://acitt.com/Home/s_dutoan.php
http://www.acitt.com

2. DT2000 - phần mềm dự toán xây dựng cơ bản (ko biết có phải cái này viết trên excel ko?)
http://vnexpress.net/Vietnam/Vi-tinh/San-pham-moi/2001/07/3B9B270B/

3. Ngày xưa mình có cậu bạn (giờ đang làm ở FPT) cũng làm PM dự toán XDCB bằng Excel ngon lắm. Chỉ tiếc bao nhiêu dự định của hắn giờ lại....
 
Sửa lần cuối:
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#6
Theo các phiên bản của EXCEL (V 2000 trở về trước), Việc tạo menu có thể theo 2 cách 1-Dùng SheetMacro4.0 dùng hàm Createmenu() và đây là giai đoạn đầu của EXCEL khi VBA chưa phát triển;2-Dùng VBA để viết code trong các module. Thực ra việc dùng SheetMacro4.0 là của các phiên bản EXCEL cũ, khi chuyển sang các version mới thì MS vẫn giữ để đảm bảo các ứng dụng cũ của người dùng đảm bảo sử dụng được. Ngày nay MS đã phát triển môi trường VBA trong bộ Office rất mạnh nên SheetMacro4.0 đã dần bị quên lãng.
Ngoài các thử nghiệm như anh Duyệt đã nói, ban đầu khi xem file menu.xls thấy không có code I đã nghĩ là dùng SheetMacro4.0 nhưng khi xóa sheet đó đi và dùng với sheet mới hoàn toàn và save lại, nhưng khi mở lại thì vẫn thấy tồn tại menu đó.
I đã viết nhiều kiểu menu nhưng dạng này thấy lạ, I mong rằng sẽ tiếp tục nhận được câu giải thích của các bạn.
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#7
To: Tuanktcdcn,
Theo Duyệt nghĩ, chúng ta có thể thao tác với Excel bằng Visual basic. Do đó khi mở một tập tin đã dịch ra exe, với biểu tượng sau khi dịch là biểu tượng của excel nhưng thực chất là tập tin exe, khi chạy chương trình nó sẽ mở excel và tạo menu. Do đó thực sự không phải tạo menu bằng VBA do đó hòan toàn không có code. Bạn hãy thử đọan code sau, chỉnh sửa lại sao cho phù hợp với phiên bản của excel. Và thế là chúng ta có thể "ngủ" được! Không thể ngủ được nếu chưa thể giải quyết bài tóan..."khò, khò, khò..."
Chúc mọi người cuối tuần vui vẻ.
1.
Start Excel.
2.
Click Toolbars on the View Menu and then choose Customize.
3.
Click on the New button in the Customize dialog box to add a new CommandBar.
4.
Type ExistingBar for the Toolbar name and click OK.
5.
Close the Customize dialog box and quit Excel.
6.
Open a new Visual Basic EXE project. Form1 is created by default.
7.
Click References on the Project menu and check Microsoft Visual Basic for Applications Extensibility 5.3, Microsoft Excel 9.0 Object Library (or Microsoft Excel 8.0 Object Library for Microsoft Excel 97) and Microsoft Office 9.0 Object Library (or Microsoft Office 8.0 Object Library for Microsoft Office 97).
8.
Add a CommandButton to Form1. In the code module for Form1, add the following code:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Private Sub Command1_Click()
' Start Excel:
Set xlApp = CreateObject("Excel.Application")

' Add a new Workbook
Set xlBook = xlApp.Workbooks.Add

xlApp.Visible = True
xlApp.UserControl = True

' ** Create a new toolbar with a dummy button**
' Add a new toolbar...
Dim cbs As Office.CommandBars
Dim cb As Office.CommandBar
Set cbs = xlApp.CommandBars

' Note the Temporary argument is set to False.
Set cb = cbs.Add("AddedBar", 1, , False) '1=msoBarTop

' Make it visible and add a button...
cb.Visible = True

Dim cbc As Office.CommandBarControl
Set cbc = cb.Controls.Add(1) '1=msoControlButton

' Set text for the button
cbc.Caption = "Dummy Button"
cbc.FaceId = 2950 'Smiley

' Delete the Existing Custom Bar
xlApp.CommandBars("ExistingBar").Delete
xlApp.WindowState = xlMaximized
Form1.WindowState = vbMinimized

Dim sMsg As String
sMsg = "Notice that the ExistingBar is deleted and AddedBar is added."
sMsg = sMsg & vbCrLF & "Hit OK to continue"
MsgBox sMsg, vbMsgBoxSetForeground, "Pausing to view changes"

' Close the Workbook without saving changes and quit Excel.
xlBook.Close False
xlApp.Quit

' Remember to release references.
Set xlBook = Nothing
Set xlApp = Nothing
Unload Me
End Sub

9.
Run the project and click the button.
10.
When the message is displayed, you can see that the "ExistingBar" CommandBar is deleted and our new CommandBar "AddedBar" is displayed.
11.
Click OK and let the program Quit Excel and terminate.
12.
Now start Excel, and note that the added CommandBar is no longer there and the deleted bar still exists.
(Xin lỗi mình không có thời gian để dịch)
Chúc tất cả vui vẻ
 
T

Tran Chau

Thành viên sơ cấp
23/11/04
149
0
0
59
TP Ho Chi Minh
#8
Cách của Duyệt thì rất hay, tuy nhiên mình đọc..hơi bị chậm hiểu ? đơn giản vì mình không biết lập trình. Mình chỉ nghỉ làm đơn giản như vầy:
1/-Cài đặt Excel5/95 và tạo menu trong các version nầy ( tác giả RemoveMenus.zip đã nói rõ 97/2000 là không được).Mình nghĩ tạo bình thường, không cần code cùng được. đại lọai như Tool\Customize...
2/-Sau đó dùng Excel 97 or later ,Save As lại.Thế là đã có Menu lạ rồi
3/- Muốn remove thì lại Save As ở dạng 5/95. Dùng Excel5/95 để remove, dùng ff có hoặc khg code cùng được
Các bạn thử dùng cách tạo menu này để gọi Auto_Open, hay Auto_Close+ App. Quit,WB.close; theo minh nhớ thì nó chặn được phím Shift, nếu khg chặn được thì .xla thử xem
Mình nghĩ đay là các properties của Excel5/95, các version sau các nhà lập trình tạo Excel đã bỏ đi, và chỉ cho chứa các menu nầy ở .xlb
Sau khi Save As “Menu lạ” ở dạng Excel5/95, mình đã thử dùng RemoveMenus.zip thì remove được rồi các bạn.Nếu các bạn thích VBA thì cứ xem kỹ các code nầy, đã remove được thì Add được thôi
 
T

Tran Chau

Thành viên sơ cấp
23/11/04
149
0
0
59
TP Ho Chi Minh
#9
Các bạn thử làm tiếp như sau, nếu làm biếng nửa:
1/-Dùng Excel5/95 để record macro các thao tác add, remove menu. Excel95 hổ trợ cả record bang Macro4 or VB.Sau khi chỉnh sửa đoi chút là bạn có code roi

Bạn chú ý,Minh nghĩ tên gọi các menu trong VB của Excel5/95 sẽ khác với 97 and >
Trong Macro4 có 1 lệnh chống chạy macro từng bước: Workspace() mà mình thấy khá hay để hạn chế crack .
Bạn có thể chèn 1 macro sheet trong Excel 2003 và Call Macro4 from VBA
Trong Excel 2003, ban vẫn có thể dùng thăng macro 4 trong vài hộp thoại như: Define Name..., mình có thấy Dyna Range ( vùng động) dùng
Các lệnh của macro4 thường là tổng hợp của vài dòng VBA, đã được dùng C để dịch sang mã máy nên sẽ chạy nhanh hơn VB ?
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#10
To Levanduyet: Em hiểu ý anh nói gì, em chắc chắn là "Menu là" không phải là một file .EXE vì nó có các thuộc tính của EXCEL.
To Chan Chau: I sẽ thử làm theo cách của bạn xem thế nào nhưng phải đi tìm bộ Office 95 hơi hiếm rồi. Bạn có thể làm một cái đại loại như "Menu lạ" đưa lên đây được không?
Cảm ơn các bạn đã nhiệt tình giải đáp!
 
T

Tran Chau

Thành viên sơ cấp
23/11/04
149
0
0
59
TP Ho Chi Minh
#11
To: Tuanktcdcn,
Hi vọng chủ nhật nầy mình sẽ thu xếp thời gian làm thử được.
Về menu lạ nầy, tác giả Kiên Giang có rất nhiều, còn dùng 1 kỹ thuật ít thấy như sau: với Excel5/95 đã lọc ra khoảng 7,8 file đủ để khởi động Excel, doi ten bat kỳ: ví dụ excel.exe, chuongtrinh.xls thành dutoan.dtm, chuongtrinh.ocx...,đăng ký icon “file type” tự tạo của mình vào registry.Dùng VB6 tạo 1 form giao diện thực chất để khởi đọng, file excel và xls cua minh.
Tân dụng được cả cả file mainhl.hlp và các tính năng F1... để làm file help cho mình
Nếu bạn thích thì I sẽ gởi “7,8 file” nầy lên thuvien.wkt( google)
Chúc bạn thành công
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#12
Tran Chau nói:
To: Tuanktcdcn,
Hi vọng chủ nhật nầy mình sẽ thu xếp thời gian làm thử được.
Về menu lạ nầy, tác giả Kiên Giang có rất nhiều, còn dùng 1 kỹ thuật ít thấy như sau: với Excel5/95 đã lọc ra khoảng 7,8 file đủ để khởi động Excel, doi ten bat kỳ: ví dụ excel.exe, chuongtrinh.xls thành dutoan.dtm, chuongtrinh.ocx...,đăng ký icon “file type” tự tạo của mình vào registry.Dùng VB6 tạo 1 form giao diện thực chất để khởi đọng, file excel và xls cua minh.
Tân dụng được cả cả file mainhl.hlp và các tính năng F1... để làm file help cho mình
Nếu bạn thích thì I sẽ gởi “7,8 file” nầy lên thuvien.wkt( google)
Chúc bạn thành công
To: TranChau,
Anh có lời giải đáp chưa? Anh có thể chia sẻ trên EFC được không?
To: Tuanktcdcn,
Bạn có lời giải đáp chưa? Chia sẻ cùng EFC. Còn về menu A-Tool bạn có thể chia sẻ ở đây được không?
Thân,
Lê Văn Duyệt
 
T

Tran Chau

Thành viên sơ cấp
23/11/04
149
0
0
59
TP Ho Chi Minh
#13
Lời giải đáp thì như I đã nói, rất tiếc I đã thử làm nhưng đều có việc phải dứt ngang.Mong các bạn thông cảm.I đã gởi file macro4.hlp lên thư viện.wkt, các bạn cần gì tieeps mình sẳn sàng cung cấp, kể cả file cài đặt Excel5/95
 

Thành viên trực tuyến

  • KimNgoc98
  • ngochuyen1996
  • ngân_nt

Xem nhiều