EXCELから印刷しようと思うのですが、黒地部分をそのまま印刷してしまうと、インクがもったいないです。
白字の文字が読めればよいので、現在は、EXCELに貼り付けてある画像を一枚一枚、別の画像ソフトでネガポジ変換して、白地に黒字にしてから、再度EXCELに貼り付けるようなやり方をしていますが、画像がたくさんあるので非常に手間です。
そこで、EXCEL上から、配置してある画像を簡単にネガポジ変換する方法、または印刷時にインクを無駄にしない方法(文字の視認性は確保)があれば教えてください。
1.印刷したいシートを選択してください。
2.メニューの 「ツール」 → 「マクロ」 → 「VisualBasicEditor」 の順に選択し
VBAの編集ツールを立ち上げます。
3.VisualBasicEditorのメニューの 「挿入」 から 「標準モジュール」を選択してください。
4.Module1の編集ウインドウが開きますので以下のコードを貼り付けてください。
Sub EcoPrint()
Dim myShape As Shape
For Each myShape In ActiveSheet.Shapes
If myShape.Type = msoPicture Then
myShape.PictureFormat.TransparentBackground = msoTrue
myShape.PictureFormat.TransparencyColor = RGB(0, 0, 0)
myShape.Fill.Visible = msoFalse
myShape.PictureFormat.Brightness = 0#
myShape.PictureFormat.Contrast = 1#
End If
Next
End Sub
5.VisualBasicEditorを終了するか、タスクを切り替えてExcelに戻り、印刷してください。
手法としては
マクロを組んで、黒の背景を透過色に、白字の部分を 明るさ0=黒にしています。
サンプルの画像で試しに動かしましたが、実際の画像の背景色が厳密な黒(RGB(0, 0, 0))ではない場合、コードの中の該当部分を変更してください。
背景色の確認の仕方ですが、
「マクロの記録」を行っている状態で、該当の図を選択し、表示される"図"メニューから
「透明な色に設定」を選び、背景の黒い部分をクリックしてください。
その後、マクロの記録を終了し、そのマクロの編集を行っていただければ、RGBの値が分かると思います。
お使いのプリンタは何でしょうか?(メーカーや型番)
プリンタによっては白黒反転印刷(ネガポジ反転)できるものもあるで、それで印刷すのが早いです。
http://q.hatena.ne.jp/1114579981
ありがとうございます。
??回答拒否にはしていないのですが・・・・。
なるほど、その発想はありませんでした。
プリンタドライバ側で制御すればできそうですね。
と、試したみたのですが、現環境ではそのような機能はないようでした・・・。
また、セル部分にメモを書いたりしているので、EXCELシート全部がネガポジ反転してしまうとNGな部分もあります。。。
で、もしかしてインクと書いているということは、
インクジェットプリンタをお使いでしょうか?
どちらにしても、お使いのプリンタ環境の情報がないと
インクを無駄にしない方法などを回答するには非常につらいものがあると思いますので
プリンタのメーカーとプリンタの型番などは示されたほうがよいと思います。
失礼しました。正しくはインクではなく、トナーとなります。
ただ、環境は適宜変わります。データを社内や出張先で印刷するからです・・・ですので、プリンタドライバも状況によって変わることが多いです。
そのため、プリンタドライバで解決する方法も一つの手として、できる環境ならそうしたいのですが、できれば、エクセルなど、ソフトレベルで何とかできる方法のほうがベターだと考えています。
説明不足で申し訳ありませんでした。
コードを貼り付けた後、F5キーやメニューの実行などで実行してください。
恐らくお気づきになられたと思いますが、念のため追記しておきます。
ご丁寧にありがとうございました。
早速教えていただいた関数を用いて、アドインを作ってみました。
「EcoPrint」という関数名、素敵ですっ!