Page 1 of 1

code save เป็นแบบ pdf

Posted: Tue Feb 15, 2011 6:25 pm
by ANUSARA
ต้องการ code ที่จำกำหนดให้ ปุ่ม button ที่ให้กดเพื่อ save เป็นแบบ pdf
แต่ต้องการให้ save ไปเฉพาะ area A1:K40 ได้ไหมคะ
เพราะนอกพื้นที่ที่กำหนดจะเป็น ส่วนฐานข้อมูลไม่ต้องการให้ผู้ใช้เห็นค่ะ

และการ save sheet ไหน มันจะ save เฉพาะของ sheet นั้น ใช่ไหมคะ จะไม่ save ไปทั้งหมดทุก sheetที่มี

ขอบคุณมากค่ะ
ได้แนบไฟล์ตัวอย่างมาด้วยค่ะ

Re: code save เป็นแบบ pdf

Posted: Tue Feb 15, 2011 6:54 pm
by snasui
:D คำตอบจาก Link ตามด้านล่างได้ผลหรือไม่ อย่างไรครับ

http://www.snasui.com/viewtopic.php?p=4302#p4302
http://www.snasui.com/viewtopic.php?f=3 ... 4365#p4365
http://www.snasui.com/viewtopic.php?f=3 ... 4428#p4428

ช่วยแจ้งในกระทู้เดิมเพื่อเป็นประโยชน์แ่ก่เพื่อน ๆ ด้วยนะครับ :P

สำหรับที่ถามมานั้นลองเขียน Code ตามด้านล่างครับ

Code: Select all

Sub SaveAsPDF()
Dim sv As String
sv = "D:\code SAVE as PDF.pdf" '<== Path and file name
    ActiveSheet.PageSetup.PrintArea = "$B$1:$K$40"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sv
End Sub

Re: code save เป็นแบบ pdf

Posted: Tue Feb 15, 2011 9:40 pm
by ANUSARA
1 เมื่อกด SAVE แล้ว เปิดดูมันแสดงเป็น 2 หน้าค่ะ
ถ้าจะกำหนดขอบเขตให้มันอยู่ในหน้าเดียวได้ไหมคะ

2 ที่ให้ codeมา ตั้งชื่อไฟล์เป็น D:\code SAVE as PDF.pdf
ถ้าอยากให้เมื่อ save ครั้งต่อไปไม่ใช่ชื่อเดิม หรือให้ผู้ใช้ตั้งชื่อได้เองค่ะ
ไม่อย่างนั้นกด SAVE แล้วจะไปทับไฟล์เดิมที่ผู้ใช้บันทึกไว้ค่ะ

Re: code save เป็นแบบ pdf

Posted: Wed Feb 16, 2011 2:03 pm
by snasui
:D ลองตาม Code ด้านล่างครับ

Code: Select all

Sub Macro1()
Dim sv As String
sv = Application.GetSaveAsFilename(filefilter:="PDF Files (*.pdf), *.pdf")
    With ActiveSheet.PageSetup
        .PrintArea = "$B$1:$K$40"
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sv
End Sub

Re: code save เป็นแบบ pdf

Posted: Wed Feb 16, 2011 4:09 pm
by ANUSARA
code ที่ให้มาเอาไปวางที่ sheet1 เลยหรอคะ
พอมากดที่ปุ่ม SAVE as PDF แล้วก็ไม่มีอะไรเกิดขึ้นค่ะ

รบกวนแนะนำด้วยนะคะ

ขอบคุณนะคะ

Re: code save เป็นแบบ pdf

Posted: Wed Feb 16, 2011 6:54 pm
by snasui
:shock: ที่ให้ไปเป็น Code ที่อยู่ใน Module ปกติครับ การจะเรียกใช้งานถ้าไม่เรียกผ่านเมนูลัดคือ Alt+F8 อีกวิธีหนึ่งคือ Assigned Macro ให้กับ Object ก่อนครับ ดูวิธีการ Assignde Macro ให้กับ Object ที่นี่ครับ http://www.snasui.com/viewtopic.php?p=3280#p3280

กรณีเรียกใช้ Code ผ่าน ActiveX Control ผมถือว่าคุณใช้เป็นอยู่แล้ว เพราะหลายคำถามสร้าง ActiveX Control มาใช้กับ Code ได้เองแล้ว จึงควรทราบว่าเมื่อคลิก ActiveX Control แล้วไปเรียกใช้ Code VBA ได้อย่างไร

Re: code save เป็นแบบ pdf

Posted: Sat Feb 19, 2011 12:38 pm
by ANUSARA
ขอบคุณค่ะ เข้าใจแล้วค่ะ