1205219697 図のような、黒地に白文字の画面をキャプチャした画像が、EXCELのシートの数十枚貼り付けてあります。

EXCELから印刷しようと思うのですが、黒地部分をそのまま印刷してしまうと、インクがもったいないです。
白字の文字が読めればよいので、現在は、EXCELに貼り付けてある画像を一枚一枚、別の画像ソフトでネガポジ変換して、白地に黒字にしてから、再度EXCELに貼り付けるようなやり方をしていますが、画像がたくさんあるので非常に手間です。
そこで、EXCEL上から、配置してある画像を簡単にネガポジ変換する方法、または印刷時にインクを無駄にしない方法(文字の視認性は確保)があれば教えてください。

回答の条件
  • 1人2回まで
  • 登録:2008/03/11 16:14:59
  • 終了:2008/03/16 07:42:16

ベストアンサー

id:bmax No.1

bmax回答回数67ベストアンサー獲得回数162008/03/11 18:45:32

ポイント60pt

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の値が分かると思います。

id:sls

ありがとうございます!

最高です!

2008/03/11 20:09:46
  • id:type9
    回答拒否のようなのでコメントで。
    お使いのプリンタは何でしょうか?(メーカーや型番)
    プリンタによっては白黒反転印刷(ネガポジ反転)できるものもあるで、それで印刷すのが早いです。
    http://q.hatena.ne.jp/1114579981
  • id:sls
    >type9さん

    ありがとうございます。
    ??回答拒否にはしていないのですが・・・・。

    なるほど、その発想はありませんでした。
    プリンタドライバ側で制御すればできそうですね。
    と、試したみたのですが、現環境ではそのような機能はないようでした・・・。
    また、セル部分にメモを書いたりしているので、EXCELシート全部がネガポジ反転してしまうとNGな部分もあります。。。
  • id:type9
    設定の「他ユーザーの設定による回答拒否」による拒否が効いているのかもしれませんね。

    で、もしかしてインクと書いているということは、
    インクジェットプリンタをお使いでしょうか?

    どちらにしても、お使いのプリンタ環境の情報がないと
    インクを無駄にしない方法などを回答するには非常につらいものがあると思いますので
    プリンタのメーカーとプリンタの型番などは示されたほうがよいと思います。
  • id:sls
    たびたびありがとうございます。

    失礼しました。正しくはインクではなく、トナーとなります。
    ただ、環境は適宜変わります。データを社内や出張先で印刷するからです・・・ですので、プリンタドライバも状況によって変わることが多いです。
    そのため、プリンタドライバで解決する方法も一つの手として、できる環境ならそうしたいのですが、できれば、エクセルなど、ソフトレベルで何とかできる方法のほうがベターだと考えています。
    説明不足で申し訳ありませんでした。
  • id:bmax
    今、自分の回答を見直してみて、マクロを実行する 記載がもれていました。
    コードを貼り付けた後、F5キーやメニューの実行などで実行してください。


    恐らくお気づきになられたと思いますが、念のため追記しておきます。
  • id:sls
    >bmaxさん

    ご丁寧にありがとうございました。
    早速教えていただいた関数を用いて、アドインを作ってみました。
    「EcoPrint」という関数名、素敵ですっ!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません