こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

エクセル。この範囲jpgで保存できませんか?

添付のような指定した範囲をjpgなどの画像ファイルで保存できないのでしょうか?

宜しく願います。

投稿日時 - 2016-01-06 20:17:27

QNo.9107217

困ってます

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

右クリックして「コピー」で画像保存されるので、画像ソフトを開いて「貼り付け」ればOK

投稿日時 - 2016-01-06 20:22:58

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.3

http://okwave.jp/qa/q5124395.html
のNo.5にKenKenSPさんのコードがありますが、これはセルにも適用可能です。
セル範囲に対応してSub Sampleを次の様に改造すると良いでしょう。
なお、C:ドライブ直下に書き出すのは時代に合わない(エラーになる)ので、デスクトップに書き出しています。
また、拡張子で判断して、PNGやTIFでも書き出せるコードになっています。
もともとC/C++から使用するWindows APIをVBAで使用するためのお約束で、ごちゃごちゃしておりますが、本質問の回答No.2のアドインでやっている事も同等と思います。
Sub Sample()
Dim hBmp As OLE_HANDLE

' GDI+ を初期化する
If GDIplus_Initialize() = False Then
MsgBox "GDI+ を初期化できません", vbCritical
Exit Sub
End If
' 選択範囲をクリップボードにコピーする
Selection.CopyPicture xlScreen, xlBitmap
' Bitmap のハンドル(メモリ上のアドレスみたいなもの)を取得
hBmp = pvGetHBitmapFromClipboard()
' 保存(JPEG でクオリティー90の場合)
If SaveImageToFile(hBmp, GetDesktopPath & "\sample.jpg", "jpg", 90) = False Then
MsgBox "保存に失敗", vbCritical
Else
MsgBox "保存に成功", vbInformation
End If
' GDI+ を終了させる(必ず呼び出すこと)
Call Gdiplus_Shutdown
End Sub

Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function

投稿日時 - 2016-01-06 22:47:53

-広告-

ANo.2

http://excel.syogyoumujou.com/freesoft/without_picture.html

これなんかでどうでしょう?

投稿日時 - 2016-01-06 20:23:44

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-