เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Results 1 to 7 of 7

Thread: วิธี ทำให้ กากบาท ที่ user form หายไป ทำอย่างไรครับ

  1. #1
    zv735
    Guest

    วิธี ทำให้ กากบาท ที่ user form หายไป ทำอย่างไรครับ

    1. วิธี ทำให้ กากบาท ที่ user form หายไป ทำอย่างไรครับ
    2. และวิธีทำให้ Manu ทั้งหมด ใน Excell หายไปให้หมด หรือเหลือน้อยที่สุดควร Set อย่างไรครับผม คือผมอยากให้ user ใช้งานจาก Form ที่ผมทำขึ้นมาอย่างเดียวครับผม
    ตอนนี้ผมใช้

    Code:
        Application.CommandBars(1).Enabled = False
        Application.WindowState = xlMinimized
        Application.ScreenUpdating = False
        Application.WindowState = xlNormal

    ขอบคุณมากมากครับ

  2. #2
    zv735
    Guest

    ทำได้แล้วครับ

    ทำให้มันหายไปไม่ได้แต่ทำให้ กด แล้วไม่เกิดอะไรขึ้นได้ครับ
    ใช้ Code นี้ครับ
    ขอบคุณมากมากครับผม

    Code:
     
    Private Sub Userform_QueryClose(Cancel As Integer, closemode As Integer) 
    
        If closemode = vbFormControlMenu Then Cancel = True 
    
    End Sub

  3. #3
    zv735
    Guest

    อีกวิธีครับ

    ทำให้มันหายไปไม่ได้แต่ทำให้ กด ไม่ได้ครับ( Disable)
    ใช้ Code นี้ครับ
    ผมไม่เข้าใจนะครับ ลอกมาจาก Api-Guide ที่อาจารย์อรวีร์แนะนำครับ
    ผม ยกเลิก ไปหลายบรรทัด ก็ยังทำงานได้อยู่
    เลยไม่รู้ว่าแต่ละบรรทัดหมายความว่าอะไร

    รบกวนผู้รู้ แนะนำด้วยนะครับ
    จะได้ประยุกต์ใช้ได้ในโอกาศต่อไปครับ
    ขอบคุณมากมากครับผม

    Code:
     
    Private Declare Function GetSystemMenu Lib "user32" (ByVal Hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal Hwnd As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
    Const MF_BYPOSITION = &H400&
    Const MF_REMOVE = &H1000&
     
    Private Sub UserForm_Initialize()
     Dim hSysMenu As Long, nCnt As Long
      Dim Hwnd As Long
        ' Get handle to our form's system menu
        ' (Restore, Maximize, Move, close etc.)
        Hwnd = FindWindow("ThunderDFrame", "UserForm2")
        hSysMenu = GetSystemMenu(Hwnd, False)
       'If hSysMenu Then
            'Get System menu's menu count
            nCnt = GetMenuItemCount(hSysMenu)
           ' If nCnt Then
                ' Menu count is based on 0 (0, 1, 2, 3...)
                RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
                'RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE ' Remove the seperator
                'DrawMenuBar lHwnd
                ' Force caption bar's refresh. Disabling X button
             '   Me.Caption = "Try to close me!"
          '  End If
        'End If

  4. #4
    อรวีร์
    Guest

    Smile

    API-Guide ไม่ใช่ของอรวีร์ค่ะ

    การใช้ Windows API ควรใช้ด้วยความระมัดระวัง เพราะเข้าไปเกี่ยวข้อง-ควบคุม ทรัพยากรของระบบ Windows
    ค่อยๆศึกษาทดลองค่ะ

  5. #5
    zv735
    Guest

    ขอบคุณอาจารย์อรวีร์มากครับ

    ขอบคุณอาจารย์อรวีร์มากครับ

  6. #6
    มิตรภาพ
    Guest
    ผมทดลองหาวิธีต่างๆดู ในการที่จะไม่แสดง X ตรงมุมขวาของ Box ต่างๆ ปรากฏว่าหากใช้ของมาตรฐานที่มีมา จะทำไม่ได้ครับ
    แต่ถ้าไม่ใช้ของมาตรฐาน แต่เราวาดขึ้นมาเอง จากบรรดาเส้น, กล่อง หรือรูปวาดต่างๆ หรืออาจจะ PrintScreen มาจาก MessageBox มาตรฐาน แล้วเลือกวางรูปภาพเข้าไป(เหมือนตัวอย่างที่ผมทำมา) ซึ่งเราสามารถทำเลียนแบบหน้าตาของ Message มาตรฐานได้ไม่ยาก โดยที่ไม่มี X ด้วยครับ

    โค้ดที่สำคัญคือตรงนี้ครับ
    Code:
    ActiveSheet.Shapes("MessageNoX").Visible = True
    "MessageNoX" ก็คือชื่อของ Object ที่เราวาดหรือสร้างขึ้นมา สามารถใช้ชื่อมาตรฐาน หรือตั้งชื่อใหม่ก็ได้ครับ

    โค้ดที่ผมลองทำในไฟล์ตัวอย่างครับ
    Code:
    Sub ShowMessage()
            ActiveSheet.Shapes("MessageNoX").Visible = True
            ActiveSheet.Shapes("Group 1").Visible = False
            ActiveSheet.Shapes("AutoShape 1").Visible = True
    End Sub
    
    Sub HideMessage()
            ActiveSheet.Shapes("MessageNoX").Visible = False
            ActiveSheet.Shapes("Group 1").Visible = True
            ActiveSheet.Shapes("AutoShape 1").Visible = False
    End Sub
    
    Sub Macro01()
            MsgBox "OK Clicked..."
    End Sub
    
    Sub Macro02()
            MsgBox "Cancel Clicked..."
    End Sub

  7. #7
    zv735
    Guest

    เป็นอีกวิธีที่น่าสนใจมากเลยครับ

    เป็นอีกวิธีที่น่าสนใจมากเลยครับ
    ขอบคุณ คุณมิตรภาพ มากมากครับที่แนะนำวิธีดีดีให้ครับผม

Similar Threads

  1. ไม่ต้องการให้ user ลาก(move) form
    By AudyPrae in forum Excel Expert Forum Library 2012 - 2007
    Replies: 6
    Last Post: 11 Nov 2009, 16:36
  2. สร้างตารางกรอกข้อมูลใน user form
    By MTM in forum Excel Expert Forum Library 2012 - 2007
    Replies: 6
    Last Post: 7 Aug 2009, 09:44
  3. เปิดไฟล์แล้วให้ user form โชว์
    By nlek in forum Excel Expert Forum Library 2012 - 2007
    Replies: 2
    Last Post: 21 Aug 2008, 09:26
  4. การสร้าง USER FORM PASSWORD
    By virai06 in forum Excel Expert Forum Library 2012 - 2007
    Replies: 7
    Last Post: 28 Jul 2008, 22:20
  5. ต้องการรัน User Form ให้เต็มจอภาพครับ
    By aaaaaaaaa in forum Excel Expert Forum Library 2012 - 2007
    Replies: 2
    Last Post: 23 Jul 2007, 20:50

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •