Tặng công cụ chơi nhạc MP3 với Excel VBA (phần 3 - Phiên bản 6 - Việt/Anh) (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,720
Giới tính
Nam
Sau nhiều lần tranh luận về cách gọi Tiếng Việt, tiếng Anh, và một số bạn đề nghị làm 2 loại ngôn ngữ, tôi lại phải thiết kế tiếp phiên bản 6 Việt-Anh nhằm tăng thêm tính sinh động của chương trình.

Với Excel, không có gì là không thể!

Chọn Tiếng Việt:

attachment.php


Chọn English:

attachment.php


=======================

Đã upload file mới, tránh định dạng thời gian (giờ kiểu AM, PM) của hệ thống.
 

File đính kèm

  • Vietnamese.jpg
    Vietnamese.jpg
    44.7 KB · Đọc: 632
  • English.jpg
    English.jpg
    45.4 KB · Đọc: 573
  • VBA_Player_V.6.xla
    VBA_Player_V.6.xla
    253.5 KB · Đọc: 67
Lần chỉnh sửa cuối:
í bạn nào đề nghị 2 ngôn ngữ zậy ? Hi hi
anh Nghĩa ơi , em giới thiệu chương trình cho anh bạn người Thái Lan , nó tâm sự rằng cảm thấy khó khăn khi thao tác giao diện do chưa rành tiếng Việt và tiếng Anh kìa anh ơi . nếu có thể ..... =)) |||||||||||||||
 
Upvote 0
hình như có chút trục trặc anh ơi
thời lượng và vị trí sao lại hiển thị là 12:03:48 AM nhỉ ?
và vị trí nếu quy ra format Phút:Giây thì nhìn hay hơn là quy ra thành vài trăm giây

a185216c5e30071821f0399862932e70.png
 
Upvote 0
í bạn nào đề nghị 2 ngôn ngữ zậy ? Hi hi
anh Nghĩa ơi , em giới thiệu chương trình cho anh bạn người Thái Lan , nó tâm sự rằng cảm thấy khó khăn khi thao tác giao diện do chưa rành tiếng Việt và tiếng Anh kìa anh ơi . nếu có thể ..... =)) |||||||||||||||
Nếu có thể, cho nó học tiếng Việt nhé! Anh sẽ giúp nó tìm trung tâm ngoại ngữ hen, hay là học Đại học Khoa học - Xã hội & Nhân văn nơi anhh đã từng học tiếng Anh đó!
 
Upvote 0
Nếu có thể ...
Em rất nhớ cái Winamp này.
Một thời để nhớ ...

winamp.gif
 
Upvote 0
Oh. Mình cài vào rồi mà không biết chạy thế nào?
 
Upvote 0
hình như có chút trục trặc anh ơi
thời lượng và vị trí sao lại hiển thị là 12:03:48 AM nhỉ ?
và vị trí nếu quy ra format Phút:Giây thì nhìn hay hơn là quy ra thành vài trăm giây

a185216c5e30071821f0399862932e70.png

Đã đổi file mới rồi (tại bài #1), vì chưa lường trước tình huống ngày giờ hệ thống thay đổi nên mới xảy ra tình trạng như vậy:

Trước:

TimeSerial(0, 0, Duration)

Sau:

Format(TimeSerial(0, 0, Duration), "hh:mm:ss")


và vị trí nếu quy ra format Phút:Giây thì nhìn hay hơn là quy ra thành vài trăm giây

Để nó chớp vậy nhìn nó hay hay, chứ theo phút giây thì thằng Vị Trí: 00:00:00 nó đã đảm nhận rồi còn gì?
 
Lần chỉnh sửa cuối:
Upvote 0
Em nghĩ là anh làm được mà, thay đổi giao diễn, còn các hiệu ứng thì không cần.
Trở về giao diện classic thấy hay hay, nhớ nhớ ...
Thôi cho "êm nó xinh", cái gì nó cũng chừng mực, làm quá nó không còn là nó nữa, tẩu hỏa nhập ma, tội cho êm nó lém!
 
Upvote 0
Đã đổi file mới rồi (tại bài #1), vì chưa lường trước tình huống ngày giờ hệ thống thay đổi nên mới xảy ra tình trạng như vậy:

Trước:

TimeSerial(0, 0, Duration)

Sau:

Format(TimeSerial(0, 0, Duration), "hh:mm:ss")




Để nó chớp vậy nhìn nó hay hay, chứ theo phút giây thì thằng Vị Trí: 00:00:00 nó đã đảm nhận rồi còn gì?
Không biết anh up chưa chứ download về vẫn thế ạ
 
Upvote 0
Anh bấm phím Ctrl+Shift+M

Hoặc trên Menu (Ribbon) có nút mặt cười đó Anh.

Hi. Trên menu máy e không thấy có biểu tượng gì. Tắt mở đi rồi mở lại Excel cũng không thấy. Dùng phím tắt CTRL+SH+M thì lên rồi.

Nhận xét chung là tác thiết kế khá công phu cho một chương trình giải trí trong Excel như thế này, đặc biệt về giao diện khá kỳ công. Chuyển đổi từng trạng thái khi đi chuột. Có một số điểm nếu hợp lý anh Nghĩa có thể cải tiến cho phiên bản 7 cho thân thiện và hoành tráng hơn nha.

VỀ GIAO DIỆN:
1. Cần có menu. Bây giờ phần lớn mọi người dùng Office từ 2007 trở lên rồi nên có thể tạo add-in theo định dạng 2007 (xlam), vì vậy có thể tạo hẳn một menu ribbon. Phím tắt thực sự không biết nếu a nghĩa không gửi kèm file hướng dẫn trong bộ file nén.
2. Hiệu ứng khi di chuột. Phần lớn các nút bấm đưa chuột vào sẽ nổi mầu để báo có thể bấm. Tên bài hát đang được chơi ở đáy màn hình cũng lấp lánh khi đưa chuột vào. Bấm vào thì không thấy gì?
3. Biểu tượng loa, có thể thay đổi với hai trạng thái bật loa hoặc tắt loa (mute). Có thể bấm vào biểu tượng loa cũng bật tắt được âm thanh.
4. Một ứng dụng phải có "About" để người dùng biết ai làm, thông tin bản quyền,...
5. Thanh chạy hiển thị trạng thái. Việc hiển thị tick count liên tục gây lóa mắt có thể chỉ hiển thị khi đừa chuột vào.
6. Nên thay thế mục TextBox hiển thị đường dẫn file bằng chức năng tìm kiếm tên bài hát.
7. Nút "Close/Đóng" nên đổi thành "Exit/Thoát" vì đây là nút thoát chương trình nghe nhạc chứ không phải là một cửa sổ của chương trình này.
8. Có vẻ dùng nhiều màu khác nhau trong chương trình?

TƯƠNG TÁC:
1. Tìm thư mục MP3 nên cho tìm cả các file MP3 của các thư mục con nằm trong thư mục mẹ đã chọn.
2. Khi nhấp đúp chuột vào tên bài hát đang chạy thì có thể cho chạy lại từ đầu.

LỖI:
Nếu dùng chuột bấm vào thanh chạy thời lượng của bài hát (Progress) để tua thì chương trình chạy như vấp đĩa +-+-+-+
 
Upvote 0
Hi. Trên menu máy e không thấy có biểu tượng gì. Tắt mở đi rồi mở lại Excel cũng không thấy. Dùng phím tắt CTRL+SH+M thì lên rồi.

Nhận xét chung là tác thiết kế khá công phu cho một chương trình giải trí trong Excel như thế này, đặc biệt về giao diện khá kỳ công. Chuyển đổi từng trạng thái khi đi chuột. Có một số điểm nếu hợp lý anh Nghĩa có thể cải tiến cho phiên bản 7 cho thân thiện và hoành tráng hơn nha.

VỀ GIAO DIỆN:
1. Cần có menu. Bây giờ phần lớn mọi người dùng Office từ 2007 trở lên rồi nên có thể tạo add-in theo định dạng 2007 (xlam), vì vậy có thể tạo hẳn một menu ribbon. Phím tắt thực sự không biết nếu a nghĩa không gửi kèm file hướng dẫn trong bộ file nén.
2. Hiệu ứng khi di chuột. Phần lớn các nút bấm đưa chuột vào sẽ nổi mầu để báo có thể bấm. Tên bài hát đang được chơi ở đáy màn hình cũng lấp lánh khi đưa chuột vào. Bấm vào thì không thấy gì?
3. Biểu tượng loa, có thể thay đổi với hai trạng thái bật loa hoặc tắt loa (mute). Có thể bấm vào biểu tượng loa cũng bật tắt được âm thanh.
4. Một ứng dụng phải có "About" để người dùng biết ai làm, thông tin bản quyền,...
5. Thanh chạy hiển thị trạng thái. Việc hiển thị tick count liên tục gây lóa mắt có thể chỉ hiển thị khi đừa chuột vào.
6. Nên thay thế mục TextBox hiển thị đường dẫn file bằng chức năng tìm kiếm tên bài hát.
7. Nút "Close/Đóng" nên đổi thành "Exit/Thoát" vì đây là nút thoát chương trình nghe nhạc chứ không phải là một cửa sổ của chương trình này.
8. Có vẻ dùng nhiều màu khác nhau trong chương trình?

TƯƠNG TÁC:
1. Tìm thư mục MP3 nên cho tìm cả các file MP3 của các thư mục con nằm trong thư mục mẹ đã chọn.
2. Khi nhấp đúp chuột vào tên bài hát đang chạy thì có thể cho chạy lại từ đầu.

LỖI:
Nếu dùng chuột bấm vào thanh chạy thời lượng của bài hát (Progress) để tua thì chương trình chạy như vấp đĩa +-+-+-+

2. Hiệu ứng khi di chuột. Phần lớn các nút bấm đưa chuột vào sẽ nổi mầu để báo có thể bấm. Tên bài hát đang được chơi ở đáy màn hình cũng lấp lánh khi đưa chuột vào. Bấm vào thì không thấy gì?

Thật ra nó có tác dụng đó Anh, ví dụ anh đang chơi ở Index là 1 trên ListBox, nếu chọn select trên ListBox đó khác với Index nó đang chơi thì khi bấm vào nó sẽ trở về select tại vị trí bài đang chơi đó.

6. Nên thay thế mục TextBox hiển thị đường dẫn file bằng chức năng tìm kiếm tên bài hát.

Nó là ComboBox Anh à, nó có tác dụng là mỗi lần ta chọn một list mới từ Folder mới, nó sẽ lưu lại đường dẫn đó, lần sau nếu muốn chơi list nào thì chỉ việc chọn đường dẫn thôi ạ. Đồng thời nếu đã chọn một đường dẫn ở dưới thì nó sẽ chuyển vị trí đó lên đầu danh sách luôn. Những list nào tồn tại nếu ta tìm thư mục thì nó sẽ không add thêm, những gì mà nó lưu lại nếu không có file mp3 thì nó sẽ xóa luôn trong list.

TƯƠNG TÁC:
1. Tìm thư mục MP3 nên cho tìm cả các file MP3 của các thư mục con nằm trong thư mục mẹ đã chọn.

Cái này mở rộng ra được ạ, bởi hàm của Thầy ndu96081631 cho phép làm điều này.

2. Khi nhấp đúp chuột vào tên bài hát đang chạy thì có thể cho chạy lại từ đầu.

Cái này em ngăn nó lại đó ạ, bởi em nghĩ đang chơi rồi cái bấm vào trở lại thấy ngộ ngộ, chỉ cần xóa các dòng màu xanh là được:

Mã:
Private Sub lstSongList_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If lstSongList.ListCount Then
[COLOR=#0000FF]        If objPlayer.Playstate > 1 Then[/COLOR]
[COLOR=#0000FF]            If objPlayer.URL = lstSongList.List(, 1) Then[/COLOR]
[COLOR=#0000FF]                Exit Sub[/COLOR]
[COLOR=#0000FF]            End If[/COLOR]
[COLOR=#0000FF]        End If[/COLOR]
        Call lblStop_Click
        If ckbRandom Then priRandom = True
        If ckbOption Then priOptPlay = True
        Call lblPlay_Click
    End If
End Sub

Tương tự như khi chọn trên List và bấm Enter:

Mã:
Private Sub lstSongList_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If lstSongList.ListCount Then
        If KeyCode = 13 Then
[COLOR=#0000ff]            If objPlayer.Playstate > 1 Then[/COLOR]
[COLOR=#0000ff]                If objPlayer.URL = lstSongList.List(, 1) Then[/COLOR]
[COLOR=#0000ff]                    Exit Sub[/COLOR]
[COLOR=#0000ff]                End If[/COLOR]
[COLOR=#0000ff]            End If[/COLOR]
            Call lblStop_Click
            If ckbRandom Then priRandom = True
            If ckbOption Then priOptPlay = True
            Call lblPlay_Click
        End If
    End If
End Sub

LỖI:
Nếu dùng chuột bấm vào thanh chạy thời lượng của bài hát (Progress) để tua thì chương trình chạy như vấp đĩa +-+-+-+

Cái này em cũng làm một động tác chặn tạm việc Do ... Loop để kéo "hạt đậu đỏ" vào vị trí nào đó, nếu không làm vậy nó không cho rê hạt đậu đó đi. Cho nên nó có chút "vấp đĩa", nhưng cũng không thường xuyên lắm ạ.

Mã:
Private Sub lblSeek_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
[COLOR=#0000FF]    priMouseMove = True[/COLOR]
    priPosX = X
End Sub


Private Sub lblSeek_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
[COLOR=#0000FF]    priMouseMove = False[/COLOR]
End Sub

        Do
            DoEvents
            lblPosition.Caption = priStrPosition & Format(TimeSerial(0, 0, .Controls.CurrentPosition), "hh:mm:ss")
            lblTimer.Caption = Format(.Controls.CurrentPosition, "0.00")
[COLOR=#0000FF]            If Not priMouseMove Then[/COLOR]
[COLOR=#0000FF]                lblSeek.Left = priProgress * .Controls.CurrentPosition + priMinLength[/COLOR]
[COLOR=#0000FF]            End If[/COLOR]

Nói chung là cũng không làm theo hướng chuyên nghiệp được ạ, bởi rảnh rỗi (chưa tìm được việc làm) nên giết thời gian đó ạ.

Cám ơn lời nhận xét chân tình của Anh.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom