En choisissant la taille du papier (PAS les tailles par DÉFAUT) dans excel vba
J'ai QL-720NW de Brother Imprimante d'Étiquettes, que je souhaite imprimer des étiquettes sur.
L'imprimante a un rouleau de largeur 62mm
Lorsque j'essaie d'imprimer quelque chose, j'ai besoin de la configuration de la page, et de définir la taille de la page.
Si la taille de la page est incorrecte (largeur de plus de 62mm) l'imprimante ne sont pas imprimer quoi que ce soit.
Maintenant, mon problème est que je suis à l'aide d'excel avec des macros pour envoyer des données à l'imprimante.
Je sais qu'il ya certains de page prédéfinis tailles (http://msdn.microsoft.com/en-us/library/office/ff834612%28v=office.15%29.aspx) qui peut être utilisé, mais dans mon cas, tous d'entre eux sont trop gros pour ce but.
Voici un exemple de code que j'ai pour l'instant:
Sub CreateTestCode()
' setting printer
Dim objPrinter As String
objPrinter = ActivePrinter
ActiveSheet.PageSetup.PrintArea = Range("Img")
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
.PrintHeadings = False
.PrintGridlines = False
.RightMargin = Application.InchesToPoints(0.39)
.LeftMargin = Application.InchesToPoints(0.39)
.TopMargin = Application.InchesToPoints(0.39)
.BottomMargin = Application.InchesToPoints(0.39)
.PaperSize = xlPaperUser
.Orientation = xlLandscape
.Draft = False
End With
Dim printerName As String
printerName = "BrotherQL720NW Labelprinter on XYZ"
ActiveSheet.PrintOut Preview:=True, ActivePrinter:=printerName
ActivePrinter = objPrinter
End Sub
Maintenant, j'ai 3 questions:
1: Au .PaperSize = xlPaperUser-je obtenir un runtime error '1004'. Impossible de définir le format de Papier de la classe PageSetup. Quel est le problème ici ?
2: Comment puis-je définir le format de papier à quelque chose comme 62mm x 50mm ?
3: Même que j'définir la zone d'impression de la Gamme("Img") - il encore d'imprimer la fiche complète ?!?
Par la façon dont je suis totalement nouveau pour vba, c'est ma première tentative d'utilisation de vba.
Vous devez vous connecter pour publier un commentaire.
Question 1
xlPaperUser
est Définie par l'Utilisateur format de papier qui est affecté à une valeur constante de 256. Si cela n'a pas été défini, il peut générer une erreur.Question 2
Il n'y a aucun moyen de créer des formats de papier personnalisés dans Excel, cependant vous pouvez créer des formats de papier personnalisés sur de nombreuses imprimantes. En vertu de mise en Page, cliquez sur le bouton Options. Cela fera apparaître les propriétés de l'imprimante de la boîte de dialogue. Changer la taille du papier d'un format personnalisé à l'aide de cette boîte de dialogue et cliquez sur OK.
Ensuite dans Excel exécuter ceci:
MsgBox PageSetup.PaperSize
. Cela va vous donner une nouvelle constante de la valeur attribuée à la taille du papier dans Excel. Puis changement.PaperSize = xlPaperUser
dans votre macro pour.PaperSize =
& quelle que soit la constante est que vous venez de trouver.Question 3
.PrintArea
prend une chaîne de caractères d'entrée, pas une gamme. Changer votre ligne deActiveSheet.PageSetup.PrintArea = Range("Img").Address
et cela devrait fonctionner.