ここから質問投稿すると、最大4000ポイント当たる!!!! >>

EXCEL VBAの初心者です。回答、指導をよろしくお願いします。EXCEL2003を使用しています。シートAとBを連続で印刷するVBAに白黒で印刷するVBAを加えたいのですが記述方法がわかりませんのでご指導お願いします。シートの連続印刷VBAは下記ですが、これでよろしいでしょうか。どなたかご指導よろしくお願いします。
Sub purint複数シート印刷()
Sheets(Array("A", "B")).PrintOut
End Sub

このQ&Aに関連する最新のQ&A

印刷 VBA」に関するQ&A: VBA印刷ページ設定

A 回答 (1件)

yasuo7211さん こんいちは。


シートごと白黒印刷のプロパティを設定すれば良いと思います。
 
Sub purint複数シート印刷()
  Sheets("A").PageSetup.BlackAndWhite = True
  Sheets("B").PageSetup.BlackAndWhite = True
  Sheets(Array("A", "B")).PrintOut
End Sub
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。VBAコードを記述していただき感謝しております。早速、自宅のパソコンで実行してみます。ありがとうございました。

お礼日時:2011/06/30 12:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELのマクロで、モノクロ印刷ボタンを作りたい

EXCELで、誤ってカラー印刷するのを防ぐため、
「印刷ボタン」を「モノクロ印刷ボタン」に変更したいと思っています。
モノクロ印刷マクロを作って、ボタンに登録しようと思ったのですがうまくいきません。
マクロでは、プリンタドライバ機能を指定することはできないのでしょうか。
せめて、プリンタオプション画面を開くマクロは作れないでしょうか?

ご回答、よろしくお願い致します。

Aベストアンサー

こんにちは。

' // プリンタオプション画面を開く
Sub ShowPrinterPropatiesPage()
  SendKeys "%R"
  Application.Dialogs(xlDialogPrint).Show
End Sub

' // モノクロ印刷(一時的にモノクロ印刷する場合)
Sub PrintWhileAndBlack()
  
  Dim sh   As Worksheet
  Dim fBackup As Boolean
  
  Set sh = ActiveSheet
  fBackup = sh.PageSetup.BlackAndWhite
  sh.PageSetup.BlackAndWhite = True
  sh.PrintOut 'Preview:=True
  sh.PageSetup.BlackAndWhite = fBackup
  Set sh = Nothing

End Sub

Qエクセルマクロで印刷プリンタを指定する方法

表題のとおりなんですけと、エクセルのVBAでの印刷命令はできますが、複数あるプリンタから特定のプリンタを指定したいのですが、なにかいい方法ありませんか?

Aベストアンサー

印刷のポートがLPT1:(プリンタポート)ならば

例:プリンタ名 自分のプリンタ
Application.ActivePrinter = "自分のプリンタ on LPT1:" 'プリンタの指定
ActiveWindow.SelectedSheets.PrintOut '印刷

印刷ポートがLAN内のプリンタサーバーの場合

例1:プリンタ名 事務室プリンタ
Application.ActivePrinter = "事務室プリンタ on Ne01:"
ActiveWindow.SelectedSheets.PrintOut

例2:プリンタ名 会議室プリンタ
Application.ActivePrinter = "会議室プリンタ on Ne02:"
ActiveWindow.SelectedSheets.PrintOut

Ne01 Ne02はLANにより異なります。

Q【Excel VBA】印刷について

Excel2003を使用しています。

不要ページをスキップして印刷するマクロを作成し、特定のBookでのみ使用しているのですが、このBookを印刷するときはカラー印刷を指定したいので、この印刷マクロの中でカラー印刷を指定できたらと思っているのですが、このようなことは可能でしょうか?可能であれば、どのように記述すればいいでしょうか?

ページ設定のマクロの記録をとったところ、下記のように(不要と思われる設定は削除しました)記述されていました。
[BlackAndWhite = False]という部分がカラー印刷に関するコード?かと思い、追加してみたのですが、カラー印刷されませんでした。

With ActiveSheet.PageSetup
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 98
.PrintErrors = xlPrintErrorsDisplayed
End With

よろしくお願いします。

Excel2003を使用しています。

不要ページをスキップして印刷するマクロを作成し、特定のBookでのみ使用しているのですが、このBookを印刷するときはカラー印刷を指定したいので、この印刷マクロの中でカラー印刷を指定できたらと思っているのですが、このようなことは可能でしょうか?可能であれば、どのように記述すればいいでしょうか?

ページ設定のマクロの記録をとったところ、下記のように(不要と思われる設定は削除しました)記述されていました。
[BlackAndWhite = False]という部分がカラー印刷に...続きを読む

Aベストアンサー

> その複合機のほうの通常設定を確認してみます。

そうですね。あと、各 PC にインストールされているプリンタドライバ
(=プリンタの設定)の話ですが。。。

機種によりますけど「カラー原稿を白黒出力する」設定があったりします。
その設定により、Excel 側でカラー印刷しても白黒...ということになる
のかもしれません。

ご参考までですが、私は無駄なカラー印刷を抑えるため、複合機の通常時
の印刷モードを「自動判定」や「カラー」ではなく「白黒」に設定してます。

カラー印刷が必要なときは、意図的にプリンタ設定を「カラー」に変更しな
ければないらないわけですが....このあたりはどうですか?

プリンタのプロパティーで設定が確認できると思います。

Qマクロを使って両面 部数設定をして印刷したい

ぜひ教えてください。

エクセル2010です。
現在 下記で印刷していますがこれに 両面 部数設定U1 にて
印刷ができるようにしたいのです。
ぜひマクロを教えてください。
(マクロの知識がなく 下のマクロもコピーで使用しています)

Sub 印刷()

With Sheets("シート書")
For num = .Range("s1").Value To .Range("t1").Value
.Range("r7").Value = num
.PrintOut
Next num
End With

End Sub

Aベストアンサー

両面印刷はプリンタドライバの設定によって制御されます。
なので、VBA(マクロ)からこれを設定しようとすると
相当な努力が必要です。(私はやろうと思えません。)
> マクロの知識がなく
と言う状態であれば、ひとまずは「無理」と覚えていただきたいところです。


コレで終わるのは申し訳ないので、ある程度簡単にできるやり方を。
わかりやすいだろうと思われる言葉を選びますが、難しかったらご容赦ください。

準備)
両面印刷用の「プリンタドライバ」を用意します。

Win7なら、
コントロールパネル から デバイスとプリンタ を開き、 プリンタを追加、
両面印刷に使用するプリンタを指定して追加し(いつも使っているプリンタで結構です)、
「両面印刷用(仮)」などわかりやすい名前にしておきます。

追加されたプリンタを右クリック、印刷設定を出します。
これから先はプリンタのメーカーや機種によって様々ですので
詳細を記載することは困難ですので、いつも通りの「両面設定」をなさってください。
適用・OKとボタンを押すと「このドライバに」両面印刷の設定が保存されます。
注:今後、このプリンタドライバを使うと「必ず」両面印刷されます。
  「通常使うプリンタ」に指定するのは危険です。

ここから、エクセルマクロ(VBA)での設定です。
エクセルを立ち上げ、該当ブックを開き、
念のためプレビュー画面でプリンタを先ほど設定した「両面印刷用(仮)」にし、
プリンターのプロパティ で「両面印刷が初期値である」を確認しておきましょう。
上手く設定できていれば、プロパティを開いた時から両面印刷状態になっているはずです。

質問文中のコードを

Sub 印刷()
  With Sheets("シート書")
    For num = 1 To .Range("U1").Value '1~U1セルの数字まで繰り返し
      .Range("R7").Value = num 'R7セルに○部目を入力。不要ならこの行は削除
      .PrintOut ActivePrinter:="両面印刷用(仮)"
    Next num
  End With
End Sub

と書き換えてやります。

これでU1セルの部数分、両面印刷されます。


正直、苦肉の策です。

両面印刷はプリンタドライバの設定によって制御されます。
なので、VBA(マクロ)からこれを設定しようとすると
相当な努力が必要です。(私はやろうと思えません。)
> マクロの知識がなく
と言う状態であれば、ひとまずは「無理」と覚えていただきたいところです。


コレで終わるのは申し訳ないので、ある程度簡単にできるやり方を。
わかりやすいだろうと思われる言葉を選びますが、難しかったらご容赦ください。

準備)
両面印刷用の「プリンタドライバ」を用意します。

Win7なら、
コントロールパ...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

QExcelVBAでBookを開く時にファイル名の一部だけを指定で

VBA初心者です。
ExcelVBAで決まったフォルダーのファイルを開きたいのですが、ファイル名が固定した文字+日付になっているため、この固定した文字だけでこのファイルを開く方法を教えて下さい。このフォルダーには2つファイルがありますが、もう1つは全く違うファイル名です。

Aベストアンサー

> ワイルドカード"*"はどんな時に使えるのですか

Dir関数を使用時の"*" (アスタリスク) および "?" (疑問符) のワイルドカード文字については、
VBAのヘルプを参照し、特に「使用例」のコードを理解してください。

その他 VBAでの ワイルドカード使用に関しては、ヘルプで Like で検索して、
Like 演算子 を参照し、同じく「使用例」のコードを理解されたら宜しいかと思います。


> 通常のOPENメソッドでの> ファイル名指定では使えないと思うのですが。

Workbooks.Openメソッドの1番目の引数は、ファイルが特定出来るように指定する必要が
ありますので、当然 ワイルドカード文字は、使用出来ません。

殆ど、フルバスで指定します。 もし、パス名を省略すると カレントホルダ内のファイルを
指定したことになります。([メニュー]-->[オプション]-->[全般]タブの中で指定)

QVBAで印刷の設定は可能でしょうか?

エクセルの表の横に 白黒印刷 カラー印刷 二色印刷 のボタンを作って
各ボタンをクリックすれば、そのボタンに応じた印刷を実行させるということは可能なんでしょうか?

Aベストアンサー

ページ設定の操作のマクロの記録を採れば出てくる
With ActiveSheet.PageSetupの中の
.BlackAndWhite = True
の指定が出来るので、ほぼどのプリンターでも白黒印刷の指定は出来ると思います。
本来はプリンタードライバーの領分なのでしょうが、この途はたまたまエクセループリンタードライバー間で付いているとおもう。
論より証拠やってみてください。
ーーー
カラー印刷はインクジェットプリンタの普及したいまどき、当然の前提ではないですか。だから黒白印刷を指定しなければカラー印刷になると思います。カラーレーザーをのぞく、黒色トナーのレーザープリンターは除く。
ーー
2色印刷とは自動で内容を勘案して2色に振り分けてくれる機能は、内容が多岐にわたるエクセルに無いのではないですか。だから自分で、対象とその内容に相応しい色を2色選んで、エクセルの書式ースタイルイルの設定(の色設定関係のもの)なども最大限使って、2色になるように設定しないとならないのかなと思います。もちろん書式ースタイル関係もマクロの記録やVBAでプログラムを組むことが使えると思います。

ページ設定の操作のマクロの記録を採れば出てくる
With ActiveSheet.PageSetupの中の
.BlackAndWhite = True
の指定が出来るので、ほぼどのプリンターでも白黒印刷の指定は出来ると思います。
本来はプリンタードライバーの領分なのでしょうが、この途はたまたまエクセループリンタードライバー間で付いているとおもう。
論より証拠やってみてください。
ーーー
カラー印刷はインクジェットプリンタの普及したいまどき、当然の前提ではないですか。だから黒白印刷を指定しなければカラー印刷になると思いま...続きを読む

Qマクロで印刷→セルの値から部数変更するには

エクセルの表を印刷するためのマクロを作っています。
印刷の都度、印刷部数が変わってくるので
「A1」に入力した部数を印刷するようにしたいのですが・・・

ActiveWindow.SelectedSheets.PrintOut Copies:=Range("A1").Value

これではエラーとなってしまいます。
正しくはどのようにすればよいのでしょか。

初歩的な事で申し訳ありませんが、よろしくご教授ください。

Aベストアンサー

提示のコードで上手くいくはずです。

ただ単に、セルA1に数値が入ってないだけでは?
それか、部数のセルA1は印刷するシートではなく
別シートなのでは?

もしそうなら、
Copies:=Sheets("Sheet2").Range("A1").Value
とシート名を明示しなければ。。。

それから、
印刷シートのA1に部数を入れると
それも印刷されてしまいますが。。。
ま、印刷範囲を選択していたら別ですが。

以上確認してください。
 


人気Q&Aランキング