ソフトの概要

BMPファイルの図からExcelデータを作成するプログラム

作者への問い合わせ先

kake@faculty.chiba-u.jp

ソフト本体以外に必要なファイル

なし

使用料

フリーウエア(無料)

 

Graphdata

 グラフの画像から数値処理できるデータに変換し,Excelの図を描きます。

メモリー節約のため,画像を右回転したものを用います。

 

準備(インストール)

[1] 作業用フォルダーを作成します。

[2] 梱包の以下のファイルを作業用フォルダーにコピーします。

form.xlsm              ここからスタートして,ここに数値化されたデータが作成されます。

graphdata.exe       form.xlsmのマクロから呼ばれます。

 

使用法

 [1] オリジナルの画像を用意します。

[2] form.xlsmを開きます。マクロが無効化されているときは,有効にします。黄色いセルの数値をグラフに合わせて変更します。

_xminRealのすぐ下のセル:横軸の最小値(例の図では20

_xmaxRealのすぐ下のセル:横軸の最大値(例の図では80

_yminRealのすぐ下のセル:縦軸の最小値(例の図では0

_ymaxRealのすぐ下のセル:縦軸の最大値(例の図では100

[3] ペイントなどを用いて画像を右90°回転させ,データ化する曲線以外を消します。枠や目盛り線も消してください。ノイズなども曲線の一部とみなされ異なった曲線となることがあります。ノイズは消しておいてください。

ペイントにて回転操作する場合,あらかじめCtrl+eでイメージのプロパティーを開き,画像サイズを十分大きくしておくとはみ出して切れることがありません。回転後トリミングにて,グラフ枠内部を切り出してください。そして,目盛り線などを削除して下のような画像にしてbmp形式で保存してください。

[4] form.xlsmの「このボタンを押すと処理を行います。」のボタンを押してください。マクロが立ち上がります。下のようなメッセージが2秒間表示された後,ファイルを選ぶ画面になります。[3]で作ったファイルを指定してください。

[5] 処理が終わると下のようなメッセージがでますので,EnterキーかOKボタンを押してください。

[6] 最終的にワークシートは下のようになります。B列がxの値,C列がyの値です。

なおL1セルに,処理されたファイル名が入っています。

 

補足事項

[1] 図形の横幅(グラフの縦軸に相当する方向のピクセル数)は5,000以下(5,000OK)にしてください。graphdata.exeで用意している記憶域による制限です。縦幅(グラフの横軸に相当する方向のピクセル数)の制限はありません。

[2] form.xlsm実行後,カレントフォルダーにout.csvが作成されます。これはマクロ中で実行されるgraphdata.exeが作成したものです。x軸の最大点から減少する方向にy値が羅列されています。実行後削除してもかまいません。out.csvの値は前後関係を逆転させた(x軸の最小点から増加する方向にy値が羅列された形にする)後,form.xlsmA列にコピーされます。

[3] form.xlsmを実行後,やり直す場合は,ワークシート上のグラフを削除してから行ってください。その他は自動的に削除更新されます。

[4] out.csvは編集可能ですが,マクロ実行(「このボタンを押すと処理を行います。」のボタンを押す)前には閉じてください。開かれていると,graphdata.exeが同名ファイルを作れないため,エラーとなります。その場合,コンソールウインドゥが開いたままでEnterキー待ちになります。Enterキーを押して終了させてください。この後にform.xlsmに作成されるデータ,図形はこの回に開いた図形のものではなく,開いているout.csvに記録されているデータによるものです。

[5] graphdata.exeのエラーコード

0                 正常終了

10               引数の数が2つでない

11               入力ファイルのopenに失敗

12               指定bmpファイルが1ビットモード

13               指定bmpファイルが4ビットモード

15               出力ファイルのopenに失敗

16               指定bmpファイルが1, 4, 8, 24ビットモード以外

17               指定された入力ファイルの横幅が最大値(5,000ピクセル)を超えている

18               入力ファイル名(パスを含む)が記憶領域(256文字)より長い

19               出力ファイル名(パスを含む)が記憶領域(256文字)より長い

 

制作記録

201611   Windows XPまでしか対応していなかったgraphdata.exe2005年開発)をvisual C++環境で改めて作成した。

201612      (Ver. 2.01) ExcelMicrosoft Office Professional 2010)のマクロを用いgraphdata.exeを使いやすくするマクロを開発した。Excelファイル名は,以前のバージョンのgraphdata.exeの付属としていたExcelのフォームを引き継いで,form.xlsmとした。

 

copyright (c) K.Kakegawa, 2016