• ベストアンサー

グラフウィザードにない形のグラフを描きたい

使用OS:Windows98SE 使用ソフト:Excel97,Word98 グラフウィザードを見てみたのですがちょうどいいグラフが見つからず、今はオートシェイプでいちいち線を描いているのですが、データを入力したら自動的にグラフになるようにしたくて質問しました。 グラフの形は円形で、中心が0で一番外側の円を1として、0.1刻みに目盛りとして同心円が描かれています。そして円の一番上を0度として、時計回りにぐるっと360度(=0度)まで10度刻みに線が入っています。 グラフのデータは、このようになっています。     A   B   C   D   E   F 長さ 0.391 0.767 0.392 0.765 0.397 0.775 角度 110  291  230  50   350  17 このデータで、 Aのグラフの線は円の中心から、110度の向きに0.391の長さで、 Bのグラフの線は円の中心から、291度の向きに0.767の長さで、 …という風に円の中心から放射状に6本の線が伸びている形のグラフにして、それぞれの線の先にA~Fの項目名を入れるようにしたいのです。 このグラフをエクセルで作成した後、コピーしてワードに貼りつける予定です。 グラフウィザードにこのようなグラフはありますでしょうか?もしくはユーザーがグラフの種類を追加できるなどの機能があるのでしょうか? ウィザードが使えないのでしたら、マクロでも構いません。エクセルのマクロは少しだけ解ります。 解りづらい文章ですみません。他に何か補足しなければいけない事はありますでしょうか…。 ご存知の方、どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1です。やっと同心円と円の扇形分割のプログラムが出来ました。 Sub test01() Worksheets("sheet1").DrawingObjects.Delete For i = 50 To 200 Step 10 enn 200, i Next i enn 200, 1 For s = 0 To 360 Step 30 senn 200, s Next s End Sub Sub enn(c, r) ActiveSheet.Shapes.AddShape(msoShapeOval, c - r, c - r, 2 * r, 2 * r).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.ForeColor.SchemeColor = 10 End Sub Sub senn(l, s) pai = 3.141592 rd = s * pai / 180 y1 = l - l * Cos(rd) x1 = l + l * Sin(rd) ActiveSheet.Shapes.AddLine(l, l, x1, y1).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 11 End Sub 上のコーディングを参考にして、角度と中心からの長さ を指定して、ご質問のグラフを考えて見てください。 同心円の線の色は赤,線は緑色にしています。

takahiro_
質問者

お礼

わざわざ作って頂いてありがとうございます! すごいですね! 考えていたイメージそっくりです。 これできっとグラフが完成できると思います。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

私もヒントだけ。 この条件ですと、 x=SIN(RADIANS(角度))*長さ y=COS(RADIANS(角度))*長さ でグラフにした時の(x,y)が計算できます。   0   0 Aのx Aのy   0   0 Bのx Bのy   0   0 … Fのx Fのy として散布図のxyに指定すると、 > 円の中心から放射状に6本の線が伸びている形のグラフにして、 の部分はクリアできます。 -- ただし、 > 同心円が描かれています。 > 線の先にA~Fの項目名を入れるようにしたいのです。 というのが難しいです。 グラフにオートシェイプを正確に合わせるのも難しいので、imogasiさんのオートシェイプで描く方法と一長一短なんですよね。

takahiro_
質問者

お礼

ご回答どうもありがとうございます。 sinとかcosを使うんですね…。気がつきませんでした…。 グラフとオートシェイプはどうしてもずれてしまいますね。画面での見た目と、印刷結果のどちらもきれいにあわせてほしいと頼まれてしまいましたので、教えていただいた数式を使ってオートシェイプの矢印を描こうと思うのですが…。がんばってみます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

回答が出ないし、私も十分解決してないが、ヒントだけ。 (1)同心円をシートに描く Sub enn(c, r) ActiveSheet.Shapes.AddShape(msoShapeOval, c, c, r, r).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# End Sub '----- Sub test01() enn 200, 160 enn 190, 180 enn 180, 200 enn 170, 220 enn 160, 240 End Sub これで5つの円ですがc、rを調節すれば同心円となります。テスト済み。 (2)直線の書き方 同じく Sub senn(c, l, s) ActiveSheet.Shapes.AddLine(c, l, s, c).Select End Sub '------ Sub test02() senn 280, 400, 250 End Sub のように引数付きのサブルーチンを作る。 質問に描いておられる直線は、4つのパラメータを決めることでかけるはずです。ただどういう風に指定すると角度と長さが指定したものになるか、未究明です。 多分、線の長さはピタゴラスの定理Sqr(x^2+y^2)を使い、角度はTANGENTを使うのでしょう。 XとX*TAN(s)を求め、長さは平方和の平方根でそれが指定長であるので、Xが求まる。 私はLineの4つのパラメータで悩んでいるぐらいなので、ヒントしか出せません。後をよろしく。 あと線の太さや色などは自由になります。コメントもテキストボックスやシェイプで入れられるでしょう。

takahiro_
質問者

お礼

ご回答どうもありがとうございます。 中心を合わせた円をどうやって描いたらいいのか全く見当がつきませんでしたので、とても助かりました。 サブルーチンというのも使ったことがないので、ゆっくりですががんばって作っていきます。

関連するQ&A

  • エクセル グラフウィザードの引き出し線

    エクセル2003を使用してます。グラフウィザードで、ある表から3D円グラフを作成する際、グラフウィザード3/4グラフオプションの中に、”引き出し線を表示する”にチェックを入れたところ、出来上がった、円グラフには、すべのデータラベルには、その引き出し線が表示されていません。幅の狭い箇所のみ、引き出し線が表示されています。グラフ全体を小さく表示しても、1箇所のみです。これは、どういうことなのでしょうか?すべてのデータラベルにおいて、引き出し線を表示することは可能でしょうか?お願いします。

  • エクセルのグラフウィザードについて

     エクセルのグラフウィザードを使って、円グラフを作って貼り付けた時、プロットエリアを使って拡大(大きく)しますが、いくつも円グラフを作る時、全部の円の大きさを一緒にするにはどうしたらいいのですか?また、縦に円グラフを並べたい時、同じライン上に並べたい時はどうすればいいのか、詳しい人教えて下さい。

  • Excelでのグラフ作成について

    私はあるデータをExcelで管理しています。それを折れ線グラフにしようと思います。私のデータは6項目の数値が横に並び、その右横に日付を入れてあります。同じ項目のデータが月単位で累積されるので、それらが下に伸びていく形を採っています。しかしグラフウィザードだと、こうして総てのものが横に並んでいると、日付を項目名としてY軸にすることができませんでした。打ち込んだデータを90度回転させた形で並べ替えることができればよいのでしょうが、残念ながら、それを一発で変換することができません。お願いします。どなたか、Excelのグラフウィザードで、私のような表を折れ線グラフにするよい方法を教えてください。

  • エクセルでグラフをマクロ化することはできますか?

    エクセルで、ごく簡単な表をグラフ化するのですが、マクロ化することはできますか? 例をあげます。 A1、B1、C1、D1、E1にそれぞれ数値(整数)が入っています。セルがたった5つだけの簡単な表です。これと同じ形式の表が10あります。これを円グラフに表し、割合として表示します。一つの表をグラフウィザードで円グラフにするのは、いたって簡単です。しかし、5つあるデータエリアの色をすべて変え、引込み線をつけない、凡例のフォントの大きさ、種類を変えるなど、設定をいろいろ変えました。この操作を10ある表すべてに繰り返しやりたくないのですが、マクロでできますか?あるいは、ほかによい方法がありますか?

  • エクセルで折れ線グラフにしたいのですが線が出ません

    エクセルのグラフ作成にて下記のようなデータを折れ線グラフで作成したいのですが、どうしても折れ線にならずに数値のところが点で表記されるだけなのです。どうしたらいいかわかりません。 お教えください。    A   B   C   D   E   F (1)  20      40         30 (2)     10      5       8 上記のように A列には(1)の数字のみ。B列には(2)の数字のみといった形です。 もちろん(1)も(2)も入る列はあるのですが・・・。 (1)の折れ線グラフはA-C-F (2)は       B-D-F と数値の入っているところを線で結びたいのです。  普通にやってみるとどうしても線になりません。 教えてください!!

  • Excelのグラフウィザードで折れ線グラフを作るときについて

    A列に時間(時分秒)、B列にデータが入っているものとします。  A      B 00:00:00   10 00:00:30   30 00:01:00   20    … この場合、単純にA,B列を選択しグラフウィザードを使えば折れ線グラフが作れますが、 A列に時間(時分)、B列に秒、C列にデータが入っている場合、  A     B    C 00:00    00   10 00:00    30   30 00:01    00   20    … 同じように折れ線グラフを作成するにはどうすればいいのでしょうか? 宜しくお願いします。

  • ファイルと設定の転送ウィザードについて

    ファイルと設定の転送ウィザードについてですが AのPCにはすでに色々なワードやエクセルのファイルがあったと すると、BのPCにはワードやエクセルのファイルがなかった場合、 BのPCからAのPCにデータを移行するとAのPCにすでにあった ワードやエクセルのファイルはなくなってしまいますか? またAのPCにワード1、エクセル1というファイルがあった時に BのPCにはワード2、エクセル2のファイルがあった場合 BのPCからAのPCに転送ウィザードを使って転送すると AのPCのワード1、エクセル1のファイルはそのまま残って ワード2、エクセル2のファイルが追加されるかたちで転送されるでしょうか?

  • Excelの グラフウィザードにあるボタンの名前を教えて下さい

    Excelの グラフウィザードで "データ範囲" 等、セルを指定する項目の右側にあるボタンの名前を教えて下さい。 よろしくお願いします。

  • エクセルのグラフ

    高校2年生です エクセルでの、グラフをつくりたいのですが、グラフウィザードで作ろうとすると、うまくつくりたい形にできないので、誰か教えていただけませんか たとえば、        (X軸におきたいデータ) (Y軸におきたいデータ) 日本          (1)                アメリカ        (2)                 イギリス       (3)                 というのを、散布図のグラフにしたいのですが、エクセルでつくろうとすると、どうしても、XとYにおきたいデータがそれぞれグラフ内にプロットされてしまいます この場合、どうすればいのでしょうか 少しわかりづらくなってしまて、申し訳ありません よろしくお願いします

  • レーダーグラフを使って「指向性」のグラフを書く -> 360本の数値軸を12本にするには?

    1.項目軸ラベルとして使う A列に30度ずついれる。 以下A列に数値代入。 A1=θ A2=0 A32=30 A62=60 A92=90 ・ ・ ・ A332=330 A361=(何も入れない) を代入します。 2. B1には「指向性」をいれる。 3. B2からB361に 最小値 0 最大値 1 の適当な数をいれる。 4. B1からB361を選択して、グラフのウィザードを出して レーダーグラフを出す。 5. 項目軸ラベルの設定をしてグラフを出す。 そうすると 360個のデータをもつレーダーグラフが現れます。 ですがグラフは真っ黒。 これは360個のデータによる、Y/数値軸の設定です。 360本の線が表示されているわけです。 これを12本、つまり30度ずつ線を引く事はできないでしょうか?

専門家に質問してみよう