• ベストアンサー

RGB値をExcelにエクスポートできませんか?

quenistaの回答

  • quenista
  • ベストアンサー率28% (122/425)
回答No.3

モジュール等が有るか解らないのですが、 もしBMPから展開するのではあれば、以下にヘッダー部の情報を書いときます。 (C形式で、見難いかも知れませんが...。) BMP ヘッダー部 typedef struct BmpFileHeader{ unsigned char szType[2]; /* "BM"固定 */ unsigned long ulSize; /* 未使用 */ unsigned short usReserved1; /* 未使用 */ unsigned short usReserved2; unsigned long ulOffBits; }; typedef struct BmpInfomation{ unsigned long ulSize; unsigned long ulWidth; unsigned long ulHeight; /* 未使用 */ unsigned short usPlanes; unsigned short usBitCount; /* 未使用 */ unsigned long ulCompression; unsigned long ulSizeImage; /* 未使用 */ unsigned long ulXPelsPerMeter; /* 未使用 */ unsigned long ulYPelsPerMeter; /* 未使用 */ unsigned long ulClrUsed; /* 未使用 */ unsigned long ulClrImportant; }; パレットのデータ typedef struct PalletInfomation{ unsigned char ucB; unsigned char ucG; unsigned char ucR; unsigned char ucX; }; 上記が、BMP Fileのヘッダー部のデータです。 /* 未使用 */の項は、今回は使わなくて良いと思います。 これ、解ります? この辺が解らないなら、かなり手間が掛かるかも知れません。 Cのコンパイラを使えるなら、BMP→CSVのツールをCで簡単に書いてみましょうか?(汚いかも知れませんが...。(苦笑)) ココに書ききれるかどうかの問題も有りますが...。 (VBAは、手間が掛かるので...。)

gmen
質問者

補足

quenistaさん、度々の回答有難うございます。 私の方もいろいろな文献で勉強したところ、ExcelのVBAで読み込む方法を見つけました。 ですが、これは128×128ピクセルサイズまでしか読み込めないようです。 扱いたい画像サイズはもう少し大きいもの(300×300くらい)で画像によってことなります。 このような任意の大きさの画像ファイルを扱うにはどうすれば良いのでしょうか? ちなみにプログラムの内容は以下のようなものです。 ”ビットマップ構造体の宣言” Type Bitmap 'bfType As String * 2 'bfType(1) As Byte 'BM bfType As Integer '42 4D (BM) bfSize As Long bfReserved1 As Integer '0 bfReserved2 As Integer '0 bfOffBits As Long biSize As Long biWidth As Long biHeight As Long biPlanes As Integer '1 biBitCount As Integer biCompression As Long '1 biSizeimage As Long biXPlanePerMeter As Long biYPlanePerMeter As Long biClrUsed As Long biClrImportant As Long End Type ”ビットマップを読み込むサブプロシージャ” Sub DIBFullColorView(fname As String) 'DIB Loading... 'Image Size 128Pixel*128Pixel*24bit DIB Format File Loading Dim j As Integer Dim i As Integer Dim rr, gg, bb As Integer Static buf(383) As Byte Static Bmp As Bitmap Close #1 Open fname For Binary As #1 'FileOpen Get #1, , Bmp 'BitmapHeader Reading... If Bmp.biBitCount <> 24 Then 'Full Color Image? Close #1 Exit Sub End If 'ImageData Loading... For j = 0 To Bmp.biHeight - 1 'y-axes loop If ((j Mod 50) = 0) Then Beep 'MsgBox (j & "line") Get #1, , buf 'One Line Reading... For i = 0 To Bmp.biWidth - 1 '256Gradition data creating... ' ::x-axes loop rr = AscB(MidB$(buf, i * 3 + 2 + 1, 1)) 'Get String 1 Byte Worksheets("R").Activate Cells(j + 1, i + 1) = rr gg = AscB(MidB$(buf, i * 3 + 1 + 1, 1)) 'Get String 1 Byte Worksheets("G").Activate Cells(j + 1, i + 1) = gg bb = AscB(MidB$(buf, i * 3 + 0 + 1, 1)) 'Get String 1 Byte Worksheets("B").Activate Cells(j + 1, i + 1) = bb Next i Next j Close #1 End Sub ”メインのプロシージャ” Global Data(128, 128) As Integer Sub main() Dim Title, MyValue As String Title = "InputBox" Msg = "Filename" MyValue = InputBox(Msg, Title, "dmy.bmp") MsgBox (MyValue) DIBFullColorView (MyValue) ' DIBFullColorView2GRAY (MyValue) ' DIBFullColorSave (MyValue) End Sub

関連するQ&A

  • エクセルのエクスポート

     エクセルのエクスポートでブックを変えずにどんどん追加したいのですがどうすれば良いでしょうか エクセル2002です。

  • 「Excelにエクスポート」ができない

    IE9をインストールしたら「Excelにエクスポート」ができなくなりました。試しにIE8に戻したらこれまで通りできます。IE9でもエクスポートできるようにするにはどうしたらいいでしょうか?(Win7HomePremium ・Excel2007を使っています)よろしくお願いします。

  • HPのデータをEXCELにエクスポートしたい、、

    HPのデータをEXCELにエクスポートしたいのですが、 画像形式(GIF)のものはできるのでしょうか? また、できるのなら、どうやってするのでしょうか? また、できないとしても、どうにか工夫して、手写しより簡単にできる方法ないでしょうか? よろしくお願いします。

  • AccessからEXCELへのエクスポート・・・みたいな・・・・

    accessからexcelへのデータエクスポートなのですが・・・ excelへの指定されたセルへのエクスポートならわかるのですが・・・ accessのデータ量(レコード数)が変化するので・・・その方法がわかりません・・・ 教えてください・・・。

  • ACCESSからエクセルへのエクスポート

    非常に困っています。どなたか教えて下さい。 エクセルのCSVファイルからアクセスのテーブルにデータをインポートして そのテーブルから新しいエクセルファイルにデータをエクスポートします。 (1)エクセルの元ファイル 列1 数値 1桁 (2)アクセスにインポート(インポート定義)        列1 数値型 1桁                 書式で3桁にする。 (3)エクセルにエクスポート(エクスポート定義)  列1 1桁になってしまいます。 ※(2)までは書式に000を入れることで解決しました。   (3)にエクスポートした状態で 列1を3桁にしたいのです                     例えば0→000 ちなみにアクセスは2002を使用しています。 どなたか教えて下さい。本当に困っています。

  • エクセルをワードへエクスポート

    エクセルをワードへエクスポートしたいんですが アクセスを持ってません。 他にエクスポートできるようなソフトってありますか? 出来れば無料ダウンロードできるようなのがあれば大変助かるんですが。

  • ACCESSからEXCELにエクスポートしたい!

    かなり困っています... ACCESSからEXCELにデータをエクスポートしたいのですが、ACCESS側の テーブルの中身すべてをEXCELに吐き出すのではなくて、1レコードづつ エクスポートしたいのです。 やりたいことは... ACCESS側のテーブルをEXCELにエクスポートする際、あらかじめ、テーブルの 一つのフィールド(部門コード)を昇順に並べておいて、エクスポートしていきながら、部門コードが変わったら、それまでの部門の金額の合計を出し、その合計もエクスポートして、次の部門に進み、最終的に金額の総合計をだそうと考えています。 この部分をVBAで組もうと考えているのですが... エクセルのレイアウトを簡単に書くと 部門 100      名称    金額            aaa  1000      bbb 500 合計         1500 部門 200      名称    金額            ccc  700      ddd 400 合計         1100 こんな感じです ちなみにOS WIN98 ACCESS2000,EXCEL2000です 皆様、よろしくお願いします。

  • Access⇒エクセルへのエクスポートについて

    Accessからエクセルへのエクスポートで質問です。 Accessのテーブルの中の一つのフィールド(名前は[合計])で、=[単価]*[数量]という計算をさせたとします。 このテーブルをエクセルにエクスポートし、エクセル上で例えば [単価]の累積合計 =SUM(**:**) [数量]の累積合計 =SUM(**:**) [合計]の累積合計 =SUM(**:**) をしたとすると、[単価]と[数量]は値が得られるのですが、Accessで計算させた[合計]は0になって値を得ることができません。 [単価]と[合計]は通貨型、[数量]は数値型に設定しています。 Accessのテーブル上では[単価]と[合計]には¥マークがついているのですが、エクセルにエクスポートすると、[単価]は¥マークがついておらず、[合計]には¥マークがついています。 Accessで計算させたフィールドは、エクセルにエクスポートした場合、数字として認識されないのでしょうか?文字になってる? うまく説明出来なくてすみませんが、Accessをエクスポートし、エクセルで加工計算を色々したいのですが、[合計]が計算出来なくて困っているという事です。 何故なのか全く判らないので教えてください。

  • ビットマップ画像をRGB値でエクセルに出力したいんですが・・・

    ビットマップ画像を取り込んで、1ピクセル毎のRGB値をエクセルに出力したいのですが、そのようなプログラムがわかる方やフリーソフトがありましたら教えて下さい!!! C#っていうのが一応手元にあります。 全くの素人でわかりづらくて申し訳ありません。。

  • エクセルからアクセスへエクスポートしたときのハイパーリンク型について

    アクセスからエクセルへのエクスポートについて テ-ブル1を ファイル→エクスポート→エクセルファイル(97-2003)にして出力 したときにハイパーリンク型が「#http://~#」 となり文字列になるのですが そのままハイパーリンク型でエクセルにエクスポートするにはどうすればいいでしょうか? 宜しくお願い致します。