★ Excel で,VBA を使って図を描くこと ★

 233 Excel で,VBA を使って図を描くこと  青木繁伸  2001/07/17 (火) 10:40
  235 Re: Excel で,VBA を使って図を描くこと  にゃんたろう  2001/07/17 (火) 18:36
   236 Re^2: Excel で,VBA を使って図を描くこと  にゃんたろう  2001/07/17 (火) 19:08
    244 Re^3: Excel で,VBA を使って図を描くこと  青木繁伸  2001/07/18 (水) 13:03


233. Excel で,VBA を使って図を描くこと  青木繁伸  2001/07/17 (火) 10:40
VBA で作ったデータを元にして Excel の散布図機能を使っていろいろな図を描くプログラムを作っています。

http://aoki2.si.gunma-u.ac.jp/lecture/stats-by-excel/vba/index.html

ボックスプロット,二次元正規分布の確率楕円,Kaplan-Meier 法による生命表と生存率曲線,回帰直線の信頼限界帯,二本の直線による折れ線回帰はある程度うまくできたのですが,クラスター分析でちょっと滞っています。
デンドログラムの左にケースを示す番号を描きたいのですが,今は数字を描くようにしているのですが,このやり方ではケースが多くなったときにケース番号が重なってしまいます。
何かいい方法はないでしょうか。
http://aoki2.si.gunma-u.ac.jp/lecture/stats-by-excel/vba/html/clustan.html
のページの下に,今のプログラムが描いたデンドログラムがあります。

     [このページのトップへ]


235. Re: Excel で,VBA を使って図を描くこと  にゃんたろう  2001/07/17 (火) 18:36

> デンドログラムの左にケースを示す番号を描きたいのですが,今は数字を描くようにしているのですが,このやり方ではケースが多くなったときにケース番号が重なってしまいます。
> 何かいい方法はないでしょうか。

とりあえず図の大きさを大きくするというのとフォントサイズを小さくするというのがあるでしょう。

図の大きさを変えるには,例えば次のようにします。これを変数によって高さを変えるようにすればいいでしょう。

Dim aname As String
aname = ActiveSheet.Name
Dim cc As Integer

cc = Worksheets(aname).ChartObjects.Count
Dim csize As Integer, psize As Integer
csize = 400: psize = 400 'チャート領域の大きさ csize=400, プロット領域の大きさ psize=300
Worksheets(aname).ChartObjects(cc).Width = csize
Worksheets(aname).ChartObjects(cc).Height = csize + 100


ActiveChart.PlotArea.Select
Selection.Width = psize
Selection.Height = psize + 100

     [このページのトップへ]


236. Re^2: Excel で,VBA を使って図を描くこと  にゃんたろう  2001/07/17 (火) 19:08
> とりあえず図の大きさを大きくするというのとフォントサイズを小さくするというのがあるでしょう。

もしかして数字フォントも手書きですか?

     [このページのトップへ]


244. Re^3: Excel で,VBA を使って図を描くこと  青木繁伸  2001/07/18 (水) 13:03
> もしかして数字フォントも手書きですか?

そうでした(過去形です)

この掲示板を読んでいらっしゃった方からメイルでヒントをいただきました。
ありがとうございました。

グラフオブジェクトとして作成するのではなくて,ワークシートに直接描きます。
個体番号はセルに書き込みます。

できあがったものは,
http://aoki2.si.gunma-u.ac.jp/lecture/stats-by-excel/vba/html/clustan.html
にあります。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 014 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る