:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
akranan
Member
Member
Posts: 19
Joined: Tue Nov 11, 2014 11:31 am

เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#1

Post by akranan »

สวัสดีครับ

เราสามารถกำหนดภาษาให้ช่อง Textbox ที่อยู่ใน Form ได้หรือไม่ครับ

เช่น Textbox1 ให้เป็นภาษาไทย พอกด Enter มาที่ Textbox2 ให้เปลี่ยนเป็นภาษาอังกฤษโดยอัตโนมัติครับ

ขอบคุณมากครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#2

Post by kio2002 »

คุณ akranan อ่านกฏข้อ5ด้วยนะครับ

5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ
akranan
Member
Member
Posts: 19
Joined: Tue Nov 11, 2014 11:31 am

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#3

Post by akranan »

ตัวอย่างตามไฟล์แนบครับ

ใน Textbox2 เลือกไปที่ ช่อง A1 เพื่อให้เปลี่ยนเป็นภาษาไทยแล้วแต่ใน Form กรอกข้อมูลไม่ยอมเปลี่ยนภาษา Thai ให้
ใน Textbox3 เลือกไปที่ ช่อง ฺB1 เพื่อให้เปลี่ยนเป็นภาษา Eng แล้วแต่ใน Form กรอกข้อมูลไม่ยอมเปลี่ยนภาษา Eng ให้

ไม่ทราบว่าใส่ตรงไหนผิดครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#4

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

#If VBA7 Then
Private Declare Function ActivateKeyboardLayout Lib _
    "user32.dll" (ByVal myLanguage As Long, Flag As Boolean) As Long
#Else
Private Declare PtrSafe Function ActivateKeyboardLayout Lib _
    "user32.dll" (ByVal myLanguage As Long, Flag As Boolean) As Long
#End If

'define your desired keyboardlanguage
'find your desired language at https://technet.microsoft.com/en-us/library/dd744319(v=ws.10).aspx

Private Const THA = 1054 'thai keyboard language layout
Private Const ENG = 1033 'english(united states)keyboard language layout

Sub Set_Keyb_Thai()
    Call ActivateKeyboardLayout(THA, 0)
End Sub

Sub Set_Keyb_Eng()
    Call ActivateKeyboardLayout(ENG, 0)
End Sub
akranan
Member
Member
Posts: 19
Joined: Tue Nov 11, 2014 11:31 am

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#5

Post by akranan »

code ด้านล่าง ตรง TextBox2.text << ใส่แบบนี้หรือไม่ครับ

ต้องการให้ TextBox2 กำหนดเป็นภาษาไทย

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(TextBox2.text, Target) Is Nothing Then Set_Keyb_Thai
If Not Application.Intersect(TextBox3.text, Target) Is Nothing Then Set_Keyb_Eng
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#6

Post by snasui »

:D สำหรับที่เขียนมานั้นเป็นการกำหนดเมื่อเปลี่ยนการเลือกเซลล์ตามค่าใน TextBox หากเป็นเช่นนั้นแสดงว่าค่าใน TextBox ต้องเปลี่ยนก่อนจึงจะเปลี่ยนภาษา ไม่ทราบว่าตรงกับความต้องการหรือไม่ อย่างไร และที่เขียนไว้เช่นนั้นเกิดปัญหาใดครับ

หากไม่ตรงกับความต้องการ ให้แจ้งมาด้วยว่าตั้งใจจะกำหนดให้เปลี่ยนภาษาเมื่อเกิดเหตุการณ์ใดครับ
akranan
Member
Member
Posts: 19
Joined: Tue Nov 11, 2014 11:31 am

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#7

Post by akranan »

ที่เขียนไว้นั้น ครั้งแรกขึ้น error หลังจากนั้นก็ไม่เกิดอะไรขึ้นครับและไม่สามารถเปลี่ยนภาษาได้ตามต้องการ

อยากจะกำหนดเหตุการณ์ดังนี้ครับ
1. เปลี่ยนภาษาไทยเมื่อคอเซอร์กระพริบ ที่ TextBox2 (ชื่อผู้รับสินค้า)
2. เปลี่ยนภาษาอังกฤษเมื่อคอเซอร์กระพริบ ที่ TextBox3 (ชื่อพนักงานจัดสินค้า) เนื่องจากต้องการยิง Barcode ลงในช่องนี้ครับ ถ้าเป็นภาษาไทย Code จะไม่เข้าครับ

ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#8

Post by snasui »

:D ตัวอย่างตามด้านล่างจะเปลียนภาษาเมื่อคลิกลงในช่อง TextBox ครับ

Code: Select all

Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Call Set_Keyb_Thai
End Sub

Private Sub TextBox3_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Call Set_Keyb_Eng
End Sub
akranan
Member
Member
Posts: 19
Joined: Tue Nov 11, 2014 11:31 am

Re: เราสามารถกำหนด Textbox1 ให้เปลี่ยนภาษาเองได้หรือไม่ครับ

#9

Post by akranan »

ขอบคุณมากครับ ตอนแรกติดปัญหาไม่ได้ใช้ mouse คลิกใช้ปุ่ม Enter แทนเลยเปลี่ยนมาใช้ Keydown ครับ

แต่ติดปัญหาตรงที่เมื่อเปิด Form ขึ้นมาจะต้องกดลูกษรลงและขึ้นไปช่องเดิมเพื่อให้ code นี้ทำงาน ถ้าจะตั้งให้ code นี้ทำงานเลยเมื่อคลิกมาที่ form นี้ ต้องเพิ่มคำสั่งอย่างไรครับ

ตอนนี้ได้ครบทุกความต้องการแล้วครับโดยใช้ code ด้านล่างนี้ครับ

Code: Select all

Private Sub UserForm_Initialize()
    TextBox2.SetFocus
    Call Set_Keyb_Thai
End Sub

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Call Set_Keyb_Thai
End Sub

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Call Set_Keyb_Eng
End Sub

Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Call Set_Keyb_Thai
End Sub

Private Sub TextBox3_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Call Set_Keyb_Eng
End Sub
ขอบคุณมากครับๆ
Post Reply