naokikoda
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
プリンタ切替のマクロができません
« 投稿日: 2014/08/09 - 19:19:39 » |
|
初めて投稿させていただきます超素人です。
SolidWorks2012で図面を印刷する時にA4に縮小して出す場合や原寸で出す場合があり、切替が面倒なのでマクロ記録から下記の様な簡単なマクロを作りました。
A3、A4を印刷するプリンタとA1、A2を印刷するプリンターが違うので同時にプリンターを切り替えたいと思っているのですがうまくできません。
プリンタ切替の方法をご存知の方いらっしゃいましたらご教授お願いします。
Dim swApp As Object
Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long
Sub main() swapp.ActivePrinter = "プリンター名" Set swApp = _ Application.SldWorks
Set Part = swApp.ActiveDoc Dim myPageSetup As Object Set myPageSetup = Part.PageSetup myPageSetup.ScaleToFit = False myPageSetup.PrinterPaperSize = 8
Part.PrintDirect End Sub
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:プリンタ切替のマクロができません
« 返信 #1 投稿日: 2014/08/11 - 09:49:54 » |
|
ダウンロードページにある シート印刷 Ver1.01 が参考になりませんか?
|
|
|
|
naokikoda
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:プリンタ切替のマクロができません
« 返信 #2 投稿日: 2014/08/11 - 09:52:39 » |
|
ありがとうございます。
確認してみましたが、複雑すぎて小生の頭ではついていけませんでした。
どなたか簡単にできる方法をご存じの方いらっしゃいませんか?
|
|
|
|
psychic
Sr. メンバー
オフライン
投稿: 59
I'm a llama!
|
|
Re:プリンタ切替のマクロができません
« 返信 #3 投稿日: 2014/08/29 - 22:14:31 » |
|
こんにちは 僕も同じようなパターンでA1,A2は大きなプリンターで A3,A4はレーザーでやってますがたまに小さく出したいときは こんな風にやってます
A4の場合
Sub main() Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim SWPRINTER As String Dim SWSIZE As Integer Dim SWFIT As Variant
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager
'設定を取得 SWPRINTER = Part.Printer() SWSIZE = Part.PageSetup.PrinterPaperSize SWFIT = Part.PageSetup.ScaleToFit
'設定 Part.Printer = ("プリンター名") Part.PageSetup.PrinterPaperSize = 9 Part.PageSetup.ScaleToFit = True
Part.PrintDirect
'元に戻す Part.Printer = SWPRINTER Part.PageSetup.PrinterPaperSize = SWSIZE Part.PageSetup.ScaleToFit = SWFIT
End Sub
ご参考になれば^^
|
|
|
|
naokikoda
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:プリンタ切替のマクロができません
« 返信 #4 投稿日: 2014/09/01 - 09:51:26 » |
|
ありがとうございます。
似た形でやってみたらうまくできました。みなさんの参考の為に下記に記録しておきます。
次は、用紙が自動で変更できるように頑張ってみたいです。 どなたか用紙サイズ等を呼び出す方法をご存知でしたらご教授願います。
Dim swApp As Object Dim Part As Object Dim myPageSetup As Object
Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long
Dim Prt As String Dim Dprt As String Dim DColor As String Dim DOri As String Dim DScal As Boolean Dim DSize As Integer
Sub main()
Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set myPageSetup = Part.PageSetup
'********************ディフォルト状態の記録**************************
DColor = myPageSetup.DrawingColor DOri = myPageSetup.Orientation DScal = myPageSetup.ScaleToFit DSize = myPageSetup.PrinterPaperSize Dprt = Part.Printer
'********************印刷の指定**************************************
Part.Printer = "(プリンター名)"
myPageSetup.DrawingColor = swPageSetupDrawingColor_e.swPageSetup_BlackAndWhite '白黒 myPageSetup.Orientation = swPageSetupOrientation_e.swPageSetupOrient_Landscape '横向き myPageSetup.ScaleToFit = True '用紙にフィット myPageSetup.PrinterPaperSize = 9 '用紙サイズ Part.PrintDirect '印刷
'*********************初期値に戻す*************************************
Part.Printer = Dprt myPageSetup.DrawingColor = DColor myPageSetup.Orientation = DOri myPageSetup.ScaleToFit = DScal myPageSetup.PrinterPaperSize = DSize
End Sub
|
|
|
|
psychic
Sr. メンバー
オフライン
投稿: 59
I'm a llama!
|
|
Re:プリンタ切替のマクロができません
« 返信 #5 投稿日: 2014/09/04 - 19:28:31 » |
|
こんにちは ぼくはこんな感じで取得してます 過去ログにもなんかあったような気がしますよ^^
Dim swApp As Object Dim part As Object Dim swSheet As SldWorks.sheet Dim width As Double Dim height As Double Dim size As Double
Set swApp = Application.SldWorks Set part = swApp.ActiveDoc Set swSheet = part.GetCurrentSheet
size = swSheet.GetSize(width, height)
If width = 0.21 Then 'A4-縦
End If
|
|
|
|
naokikoda
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:プリンタ切替のマクロができません
« 返信 #6 投稿日: 2014/09/05 - 09:20:13 » |
|
回答ありがとうございます。
うまくできました。
ただ気になったのは、sizeにA4=7、A3=8などの数字が入ってき たのですが回答の0.21にはならないのはなぜでしょうか?
|
|
|
|