アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者です。
Excel VBAのマクロで、2つの配列データから、散布図グラフを作成したいのですが、セルに配列データを書き込まず、直接グラフ化するにはどうしたらよいでしょうか?
配列データの要素数がexcelの行と列の最大数(65536,256)?を超えてしまっているので、配列データから直接グラフ化したいと思っています。
よろしくお願いいたします。

A 回答 (2件)

私は下記のことを思いつきます。


(1)エクセルのアドインソフトを購入入手する。
  WEB検索で、グラフ アドイン または グラフ Addinで検索して、市販、フリー、シェアウエアを探して
見てください。多量データ数に対応したソフトがあるかも
知れない。
(2)エクセル等のソフト部品を利用する。
   VBAなども含む。
(3)エクセルの手操作
(4)その他-データを合理的・理論的に間引く
(3)について
これが一番いいのですが。系列というのがあります。
散布図の場合重ねグラフのようになりそう。
A列1-65000行を第1系列にする。
B列1-65000行を第2系列にする。
第1系列=(行数-A列データ)、第2系列=(行数-B列データ)にすると、第2のプロットの色は変わりますが、重ねたように見えるようにグラフを書きます。(小数例でしかやってません。一度試してみてください。)操作は
右クリック―元のデータ-系列-XとYの値-追加。
ただこれも256行に余裕が内状態ではダメかも知れない。
(2)のVBAは
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B1:B5"),
の=右側がRange指定になっていて、データベースを指定出来る様になっていないと思う。(今後出来るという答えが出るかもしれないが)。またデータ以外だけを、部品として利用するのは
初心者には難しい(APIとかクラスとか)。
    • good
    • 0

#1で解答入れたものです。

外出予定あって取り急ぎいれたのですが、良く考えると、「配列」と言う意味が良く判らない。
(1)グラフは通常2次元グラフを考えていると思う。
散布図に適したデータなら、X軸、Y軸の1組のデータで1点
を表すとして、この「点」座標データ組が数百万あるということですか。それであればエクセルに拘らず、多数のデータを扱える専用グラフソフトを探されては。
(2)プログラムで言う配列は、そのプログラムの中に入って
初めて使えるものだから、そのまま外部記録メディアに記録できるものでは無い。エクセルに配列がありますとは何を言うのか不明。(TRNSPOSE関数、MMULT関数、MINVERSE関数を使う場合には、数値を「配列」として扱う必要があるという関数と利用者の約束ごとはあるが、グラフがデータを配列として要求するかどうかはグラフソフトの問題。)
---
(1)としてVBで下記はいかがですか。安上がりです。
Private Sub Form_Click()
a = 0.1: b = 0.1
Open "c:\my Documents\sct1.csv" For Input As #1
p01:
If EOF(1) Then GoTo end1
Input #1, X1, Y1
Form1.PSet (X1 * a, Y1 * b), vbRed
GoTo p01
end1:
Close #1
End Sub
PSetは1点は微小ですが、何百万組データがあるのならこのほうが良かろう。エクセルなんぞだと、ポイントだけで画面が
埋まってしまうのではと心配しました。
微小点が何度も集まると、濃いように見えるのではないでしょうか。雲のように。
a,bは画面に点が収まるように縮小・拡大するものです。
Form1はPicture1コントロールでも良かろう。
表・軸見だし・凡例はテキストボックスを貼り付けてどうですか。
X,Y軸は直線を貼り付けてはどうですか。
上記sct1.csvは例として
1230,2340
2323,1120
3456,4535
4256,1345
5234,3451
2453,4561
のようなものです。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。

2つの配列というのは、X軸データで1つ・Y軸データで1つの配列を考えていました。
何をやりたかったかというと、画像の色分布を2次元の散布図で表示させようとしていました。
Excel VBAで、RGBの各画素のデータから、色のXY座標に変換した結果をそれぞれの配列に入れておき、その分布をグラフ表示させようと考えていました。
(分布が集中している色は濃く表示されるだろう位の軽い気持ちで・・・)

No.1で回答していただいたように、いったんX軸、Y軸に相当するデータを
セルに書き込んでそれをグラフ化してみたのですが、やってみて、無謀なことをしていたなぁと気がつきました。
imogasiさんご指摘のように、分布の集中を濃さで表現するにはExcelのグラフでは無理があることを実感しました。
無理やりやろうとしたら、色座標でヒストグラムを作成し、3次元的なグラフにしないといけないですね。

imogasiさんから頂いた、貴重なアドバイスを元に、もう少し構成を考えてみようと思います。

ほんとうにありがとうございました。

お礼日時:2002/09/24 22:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!