• ベストアンサー

Excel2003で作成したファイルをセル1つずつ単体で画像ファイルに保存したい

Excel2003で、普通に文字をセルに入力し、それを画像ファイル(BMP・GIF・PNG・JPEGのいずれか)に保存したいのですが、何か良い方法はありませんか。ただ、たくさんの画像ファイルを作りたいので、Excelのセルをそのままコピーして、わざわざペイントソフトを起動して貼り付けるのではない方法、できれば、保存したい文字を先にすべて入力しておいて、あとからセルごとに保存できるとかいう方法もありましたら教えてください。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

#1 です。ちょいと長いですが。。。 0. C:\images フォルダを予め作成しておく 1. [Alt]+[F11] で VBE を開く 2. [挿入]-[標準モジュール] 3. 下記のソースコードをコピペ 4. VBE を閉じる 5. 適当なセルにデータを入力し、そのセルを飛び飛びでも良いので   選択してから、[ツール]-[マクロ]-[マクロ]で実行 BMP(ビットマップ)ならこんな感じ。Jpeg や Gif でも書き出せるけど 少し複雑になります。 細かなエラー処理はしてません。 ' // ソースコードはここから下 Option Explicit ' // 標準モジュール ' // Declareations -------------------------------------------------- Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" ( _     ByVal wFormat As Long) As Long Private Declare Function OpenClipboard Lib "user32.dll" ( _     ByVal hWnd As Long) As Long Private Declare Function GetClipboardData Lib "user32.dll" ( _     ByVal wFormat As Long) As Long Private Declare Function CloseClipboard Lib "user32.dll" () As Long Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" ( _     ByRef lpPictDesc As PictDesc, _     ByRef RefIID As GUID, _     ByVal fPictureOwnsHandle As Long, _     ByRef IPic As IPicture) As Long ' // Types ---------------------------------------------------------- Private Type PictDesc     cbSizeofStruct As Long     picType    As Long     hImage     As Long     Option1    As Long     Option2    As Long End Type Private Type GUID     Data1     As Long     Data2     As Integer     Data3     As Integer     Data4(7)    As Byte End Type ' // Constants ------------------------------------------------------ Private Const CF_BITMAP   As Long = 2 Private Const CF_PALETTE   As Long = 9 ' // ここがメイン処理部 Sub セルごとにビットマップで書き出し()   Dim r    As Range   Dim sImgDir As String   Dim lImgCnt As Long   Dim p    As IPicture      ' // 画像の保存フォルダパス   sImgDir = "C:\images"      ' // 終了条件:: 選択されているのがセル以外なら無視   If UCase$(TypeName(Selection)) <> "RANGE" Then Exit Sub      lImgCnt = 1   For Each r In Selection.Cells     ' // ビットマップとしてクリップボードへコピー     r.CopyPicture Appearance:=xlScreen, _            Format:=xlBitmap     ' // クリップボードのビットマップを Picture オブジェクトに変換     Set p = CreatePictureFromClipboard()     If Not p Is Nothing Then       ' // BMPファイルを書き出す       Call SavePicture(p, sImgDir & "\image" & Format$(lImgCnt, "00000") & ".bmp")       lImgCnt = lImgCnt + 1       Set p = Nothing     End If   Next   ' // フォルダを開く   Shell "explorer.exe " & Chr(34) & sImgDir & Chr(34), vbNormalFocus    End Sub ' // クリップボードのビットマップデータから Picture オブジェクトを作成 Private Function CreatePictureFromClipboard() As IPicture     Dim hBitmap    As Long   Dim hPalette   As Long   Dim uPic     As PictDesc   Dim IID_IDispatch As GUID   Dim lRet     As Long      Set CreatePictureFromClipboard = Nothing     ' 終了条件:: クリップボードに該当データが無い   If IsClipboardFormatAvailable(CF_BITMAP) = 0& Then Exit Function   ' 終了条件:: クリップボードからイメージハンドルが取得できない   If OpenClipboard(0&) <> 0& Then     hBitmap = GetClipboardData(CF_BITMAP)     hPalette = GetClipboardData(CF_PALETTE)     Call CloseClipboard   End If   If hBitmap = 0& Then Exit Function     With uPic     .cbSizeofStruct = Len(uPic)     .picType = 1     .hImage = hBitmap     .Option1 = hPalette   End With   With IID_IDispatch     .Data1 = &H20400     .Data4(0) = &HC0     .Data4(7) = &H46   End With   lRet = OleCreatePictureIndirect(uPic, _                   IID_IDispatch, _                   0&, _                   CreatePictureFromClipboard) End Function

jnr-fun
質問者

お礼

ありがとうございます。 解決しました!

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんばんは。 > 保存したい文字を先にすべて入力しておいて、あとからセルごとに > 保存できるとかいう方法 VBA を使えば可能ですけど、具体的にどのようにデータが並んでいる のでしょうか? また、「セルごと」というのは、ひとつのセルで画像1ファイル? 連続しない選択範囲ごと? この辺を具体に補足して下さい。

jnr-fun
質問者

お礼

早速のご回答ありがとうございます。 普通に文字だけを使用していて、グラフや画像などは一切貼り付けていない、単純な文字列のみを使用した形のデータです。 配置はAの列にズラーッとたて一列に並んでいます。 セルごとというのは、ひとつのセルで画像1ファイルです。 わかりにくい表現ですみませんが、こんな感じです。

関連するQ&A

  • .pngの画像ファイルについての質問

    自分は今まで、画像ファイルを(画質は落ちるが)容量を小さく保存するのは.jpeg方式だと思ってました。それ以外は、bmpとgifしか知りませんでした。最近.pngの拡張子の画像を見かけるようになったのですが、これは新しい画像の保存形式でしょうか?.pngは.jpegよりも高画質の小容量で保存できますか?だとすると、どうやって.jpegや.bmpを.pngに変えられるのでしょうか?(ソフト使用ですか?)

  • PCの画像の種類(ファイル?)について

    画像を添付しようと思いましたら・・。 「エラー : ご利用できる画像ファイル形式はgif、jpeg(jpg)のみです。 1.png 」 と出てしまいました。 この「png」という形式を、上記の「gif、jpeg(jpg)」にするにはどうしたらよいでしょうか? ペイントで、いくつかの画像をまとめたものを、デスクトップに保存してある状態です。 画像は、ネットから取り出した画像を、ペイントでまとめました。 宜しくお願い致します。

  • 画像が保存できません

    いつごろからかは分からないのですが 右クリック→名前を付けて画像を保存 にして画像を保存しようとしても 必ずbmpファイルでしか保存できません。 元の画像がjpegやgifでもbmpになってしまいます。 どうすればjpegやgifのまま保存できるでしょうか。 よろしくお願いします。

  • 画像保存

    どういった画像に、どういった保存方法が優れているか教えてください。 ビットマップ保存、JPEG保存、PNG保存、GIF保存…などたくさんあって分かりません。 また、保存後の拡張子も付け加えていただけると助かります。(例:ビットマップ保存→bmp) ※拡張子zipって何保存でしょうか?

  • [Excel マクロ] セルをそのまま BMP で保存する方法

    Excel マクロでセルをそのまま BMP で保存する方法を 教えて下さい。 Alt + PrintScreen キーでスクリーンキャプチャを取る方法は 知っているのですが Excel マクロで処理したいので。 http://www2s.biglobe.ne.jp/~iryo/vba/VBA14c.html 14-54 選択したセルをBMP画像で保存 に外部でペイントを起動し SendKeys で処理する方法を 見つけたのですが、もっとスマートに実現する方法は 無いのでしょうか。 エクセルのバージョンは 2000 です。 よろしくお願いします。m(_ _)m

  • 画像の保存種類を変更したい

    沢山の画像(200枚以上)を保存していますが 種類が色々・バラバラです。 JPEGに統一したいのですが  一つずつ【ペイント】で開き 【名前をつけて保存】でJPEGを選択しています。 簡単に変更できる方法があったら 教えて下さい。 今の保存タイプは PNG GIF です。 宜しくお願いします。

  • 画像を綺麗に保存したいのですが・・・

    ネットでやっているゲームなどの画像をJPEG画像で保管したり、ブログで掲載したいのですが、どうしても綺麗に保存できないのです(ノ◇≦。) いつもPrintScreenキーを押し、Winのペイントに貼り付けて画像サイズを整えJPEG保存しているのですが、保存画像を開いてみると色などにムラができてしまいます。 24ビットbmpで保存し、irfanViewなどのGIF変換ソフトを使ってみてもイマイチ綺麗に保存できていません。 (mixi等のSNSはJPEG画像しか掲載できないので、できればJPEG画像で保存したいのです) 使っている画像処理ソフト(ペイント)が悪いのでしょうか?? ブラウザ画像等を綺麗に保存するのにオススメの方法やソフトがありましたら教えて下さいm(__)m

  • 画像の保存の形式が決められない。

    IEを使ってるのですが、インターネット上の画像を保存する時に右クリックして、名前をつけて画像を保存、を選択して出た画面の「ファイルの種類」が、ビットマップ(BMP)形式しか出てきません。なので、GIFやJPEGで保存したい場合は、いちどBMPで保存してから、ペイントを使って保存しなおさなければいけなく、大変面倒な思いをしています。 どなたか直し方を教えてください。よろしくお願いします。

  • Excelデータをセルごとに画像(できれば透過gif)で保存するには

    Excelにつくったデータをセルごとに別々のファイルとして 画像(できれば透過gif)で保存するにはどうすればよいでしょう? たくさんのセルのデータを画像にしなくてはいけないので、 ペイントを立ち上げてひとつずつコピペして保存するという方法以外で 効率よくできるやり方があればぜひ教えていただきたいです。 実は過去の質問例を参考に VBEでBMP形式のファイルを作るという方法にトライしてみましたが http://oshiete1.goo.ne.jp/qa3087644.html 私の場合はなぜかうまくいかないようです。 (マクロを実行すると保存先のフォルダがひらかれますが、 画像ファイルはつくられていないようです。) 加えてもしできれば 透過gifでつくれれば大変助かるのですが。 実は仕事で必要に迫られてやっているのですが このExcelデータを一個ずつ画像にするということが 効率よくできるかどうかで作業時間に雲泥!の差が出るため かなり切実にアドバイスを求めております。 VBEにはあまり触ったことがない者でもわかるように 若干丁寧めに説明してもらえるとうれしいです。 どうぞよろしくおねがいします。

  • 画像が保存できない

    欲しい画像の上にカーソールを持っていき、右クリック、名前をつけて画像を保存  ここまでは正常なんです。問題はここからです。  欲しい画像の形式がgif や jpeg (プロパティーでみるとちゃんとgifやjpegって載ってます)でも何故か保存する時にファイルの種類ってところにbmpしか表示されなくてbmpでしか保存できない時がかなりあります。 気が付いたら直ってたり おかしかったり ・・・ これの繰り返しで困ってます。 どうしたらいいのでしょうか?教えてください。お願いします。

専門家に質問してみよう