• ベストアンサー

エクセルVBAでの画像印刷について。

エクセルVBAにて、JPG画像ファイルを印刷するにはどのように記述すればいいのでしょうか? JPG画像ファイルをフルパスで指定して印刷できればベストです。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#2です。徒然なるままにやってみました。 印刷設定の詳細は、参考URLなどをご覧下さい。 xl2000で試しています。ご参考まで。 Sub test() Dim myPic As Picture Dim sh As Worksheet Const filePath As String = "C:\Documents and Settings\hoge\My Documents\My Pictures\hogehoge.jpg" Application.ScreenUpdating = False Set sh = ActiveWorkbook.Sheets.Add Set myPic = sh.Pictures.Insert(filePath) With sh.PageSetup .PrintArea = myPic.TopLeftCell.Address & ":" & myPic.BottomRightCell.Address .PaperSize = xlPaperA4 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With sh.PrintOut Copies:=1 Application.DisplayAlerts = False sh.Delete Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

参考URL:
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv211.html
poohaltea
質問者

お礼

回答ありがとうございます。 詳細補足については#1の補足にて代えさせて頂きます。

その他の回答 (3)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

#2,3です。keithinさんのご指摘が気になったので、xl2010でも試してみましたが動作しました。 参考URLの記事をみつけましたが、今回はその場限りの使い捨てなので、問題ないと考えます。

参考URL:
http://support.microsoft.com/kb/2396509/ja
poohaltea
質問者

お礼

回答ありがとうございます。 詳細補足については#1の補足にて代えさせて頂きます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

たぶん、お望みのモノではないと存じますが、勉強のために作成してみたことがあります。 1.画像ファイルをBitmapに読みこみ。 2.Bitmapからデスクトップ互換のデバイスコンテキストを生成 3.上記デバイスコンテキストをemfに変換 4.プリンタのデバイスコンテキストを取得 5.画像のemfを、プリンタのデバイスコンテキストに描画=印刷 勉強のためなので、用紙一杯に印刷できるところで満足して、それ以上の追求はしてありません。 APIを使っており、こちらに回答するには長すぎますし、きっと採用されないと思いますので。 画像を挿入/図/ファイルからで、ワークシートに読みこんで、 一定セル範囲に収まる様にサイズを調整して、 そのセル範囲を印刷範囲に設定して印刷し、 用が済んだらそのワークシートを削除するというのが簡便だと思います。 自動記録でかなりの部分が出来ると思いますので、その上でご不明の点があれば補足質問されてはいかがですか。

poohaltea
質問者

お礼

回答ありがとうございます。 詳細補足については#1の補足にて代えさせて頂きます。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

フム。。 標準モジュールに下記の通り作成して,macro1を実行します。 Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd_ As Long) As Long Sub macro1() On Error GoTo errhandle ret = ShellExecute(0, "Print", "c:\test\sample.jpg", "", "", 0) errhandle: Err = 0 End Sub #なぜワザワザExcel VBAで「画像ファイルを」操作したいのか,そこいらのバックグランドについてもうちょっと補足があると,より適切なマクロのアイデアも寄せられると思います。 例えばワークシート上に目的の画像を挿入して印刷するといった,もっと簡単なマクロでも十分かもしれません。ただしあなたが実際にご利用のエクセルのバージョンによって正しいマクロの書きぶりが変わるので,マクロを代わりに書いてくださいなときは注意して下さい。

poohaltea
質問者

補足

回答ありがとうございます。 社員の資格書を印刷するマクロを作ろうとしているのですが、画像ファイルの印刷の仕方が分かりませんでしたので質問させて頂きました。 何分資格書がたくさんありますので、エクセル上で印刷したい資格書にチェックを入れ、チェックを入れた資格書と対応する画像ファイルを印刷するというマクロを作っています。

関連するQ&A

  • 複数の画像をVBAでエクセルに貼り付ける方法

    VBA初心者です。 多数のJPG画像が指定のフォルダ内に保存してあります。 JPG画像には、img_001.jpg、img_002.jpg・・・というように連番の名前が記載されています。 EXCELファイルのA列のセルに入力されているランダムな数値に対応した画像が 同じ行のB列に表示するようにしたいと考えています。 (たとえば、A1のセルに1を入力したら、B1のセルにimg_001.jpgが表示される) このような操作を、VBAを使用して作成することはできるのでしょうか。

  • ExcelのVBAで他のファイルを起動する時の指定

    ExcelのVBAで他のファイルを起動する時の指定 ExcelのVBAで他のファイルを起動する時の指定の仕方で、 例えば同ディレクトリや一つ下の階層のファイルとかの場合、 フルパス以外で簡単に指定する方法はあるのでしょうか? 現在フルパスにて記述しているのですが、 ファイルを移動したりした時に、またそちらでのフルパスに 修正しないといけなくなるので手間がかかって困っています。 何かいい方法はないでしょうか? Excelは2000を使っています。

  • access vbaを用いた画像ファイルの印刷

    現在,accessから画像ファイルを印刷するプログラムをVBAを用いて作成しています。 テーブルに画像ファイルのフルパスが保存されており,コードが走ると,上から順番に 全自動で印刷できるようにすることが目的です。 しかし,印刷ダイアログが表示されてしまい、okを押さないと次の画像を印刷することができません。 どうすれば,一度コードが走れば, 印刷ダイアログを表示させずに印刷ができるようになるでしょうか? なにとぞご教授,宜しくお願い致します。

  • Excel VBAで画像解析

    Excel VBAで画像解析を行いたいのですが、その際に画像データを画素毎に抽出しなければなりません。bmpなど無圧縮のファイルなら、バイナリで読み込んで何とかなりますが、jpg等はどうにもなりません。 Excel VBAで画像ファイルの画素データを直接読み取る方法はありませんか。 他の開発言語を使ったほうがやりやすいのは承知の上ですが、解析結果も配列で返ってくるので、その後のグラフ化の処理などもExcel上で統合してやりたいのです。 宜しくお願いいたします。

  • エクセルVBAで、画像の挿入をしたいと思っています。

    エクセルVBAで、画像の挿入をしたいと思っています。 シート名は左から まとめ、A、B、C、まとめ(1)、A(1)、B(1)、C(1)、まとめ(2)、A(2)、B(2)、C(2) と、あるとして、任意のフォルダの中にある画像(*.jpgが9枚)を昇順でひとつずつA、B、C、A(1)、B(1)…C(2)シート(まとめ以外のシート)の指定のセルに貼付けられないかと考えています。 画像の名前は任意で、001.jpgはA、002.jpgはB、…009.jpgはC(2)と画像は昇順に、シートは左からというルールは変わらないとして、どのようにVBAを組んでいけばよいでしょうか。 どうぞご教授お願いします。

  • エクセルVBA モジュールの印刷について

    エクセルVBA標準モジュールの印刷のセットアップはどうやるのでしょうか? いつも用紙左側ギリギリに印刷され、ファイルに閉じると左側が見えなくなってしまいます。 よろしくお願い申し上げます。

  • エクセルVBAで最高画質印刷

    エクセルVBAでプリントを綺麗にさせたい場合、わたしのプリンターでは .PrintQuality = 1200 を指定しています。 しかし、印刷品質はプリンターによると思いますので、他のプリンタを使う端末で作動させた場合、1200dpiが使えないものなら.PrintQuality = 1200ではエラーになると思います。 こういった場合(どんなプリンターかわからない場合)、そのプリンターの最高画質で印刷させるためにはVBAをどんなふうに記述すればいいでしょうか?

  • VBAで画像印刷

    Excel2002ですが、任意の画像ファイルをプリントアウトしたいと思います。 objShell.ShellExecute ActiveWorkbook.Path & "\" & "Water lilies.jpg", "", "", "print", 1 ですと、単にFaxViewerで表示されるだけ。 ShellExecute(1, "print", "Water lilies.jpg", vbNull, vbNull, 0) だと何も起こらない。 どうしたらよろしいでしょうか?

  • EXCELでのVBAでダイアログボックスの表示方法

    EXCELで簡単なVBAを作成しています。単純に特定のファイルを読み込み 書式設定を変更して印刷をかけるだけのものなのですが、 この変更したEXCELデータをフォルダやファイル名を使用者側で指定できるよう、ダイアログボックスを使用したいと思っていますが、 VBAの記述方法がわかりません。どうかよろしくご指導お願いします!

  • (VBA) 実行すると指定URLにある画像を保存

    タイトルの通りなのですが、vba で、実行すると、指定のURLにある「jpg」,「jpeg」画像を抽出し、指定フォルダに保存するものを作りたいのですが、どのようなコード記述にすればよいでしょうか? 教えていただけると幸いです。

専門家に質問してみよう