• ベストアンサー

ExcelVBAでの折れ線グラフ

ExcelVBAでグラフを作る方法を教えてください。 問題はデータの取り方なのです。 国語 算数   英語 1位から10位  10~9  10~8   10~ 11位から20位  8~6  7 ~5   9~7 21位から30位  5~4   4~2   6~4  と成績順になっているのですが、これを折れ線グラフにプロットしたいと思っています。  ですが、これには決まりがあります。  10位・11位・20位・21位・30位  の成績をグラフに打ちたいと思っています。  例えば「国語」の場合だと、 「10位-9、11位-8、20位-6、21位-5、30位-4」プロットして折れ線を作りたいと思っています。  このとき問題なのは、項目となる数値に「*位から*位」と*以外の余計な数値が入っていること。  成績においては「~」が入っていることです。  英語のように「~」の右側がない場合は、左側の数値を持ってくることになっています。    少々複雑なのですが、このようなプロットを打ちたいと思っています。  DBベース自体を整理してしまえば楽なのでしょうけど、これはほんの一例で、量が多すぎてそれが面倒です。  それをマクロで別シートにとろうかとも思ったのですが、それもうまくいきませんでした.  わかりにくいのですが、何かよい方法はありませんでしょうか?  よろしければ教えてください。 

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

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

この質問は問題点が掴み難い。それで一部だけ。 >このとき問題なのは、項目となる数値に「*位から*位」と*以外の余計な数値が入っていること。 Split関数の利用が良いでしょう。 下記を参考に。 Sub test02() s = Cells(1, 1) 'セルA1と仮定 s1 = Split(s, "~") MsgBox s1(0) If s1(1) = "" Then s1(1) = s1(0) End If MsgBox s1(1) End Sub ●さて上記2つ値が決まったとして、2つの値で(株価グラフのように)グラフ化するのですか ●> と成績順になっているのですが、 国語・算数・英語の別々に3表(シートのことを言ってるのではない、同一シート内であっても)あるということですか。 ●順位番号は表上に出ているのですか ●質問を答える上で 国語 算数   英語 1位から10位  10~9  10~8   10~ 11位から20位  8~6  7 ~5   9~7 21位から30位  5~4   4~2   6~4 は影響ある(考える必要)のですか。 既に表上(内)に具現している内容で、説明しただけですか ●>10位・11位・20位・21位・30位の成績をグラフに打ちたいと エクセルグラフは、エクセルシート上のデータをグラフ化するものです。 飛び飛びの値をグラフ化したければ、飛び飛びの値をシート上に「それだけでまとめて」、データ表として作らないといけないと、私は理解してますが(プログラム内配列など別にして、そうでない方法あるかも)、そのデータは作れますか(作る余地や作ることが許されてますか)

quincy
質問者

お礼

回答ありがとうございます。お礼が遅くなってすみません。わかりにくい内容のものに、詳しい説明をしていただき感謝しております。 私もいろいろなことをいっぺんにしていて、なかなかまとまらずにおりまして、拙い説明で申し訳ない限りです。 データは・・・作ることをやっと許されてきた段階です。でも制約だらけです。その中でのVBAなので苦労しております。 夏休み明けましたら試させて頂きます。わかりにくいのに本当に詳細にありがとうございました。

その他の回答 (1)

  • keikan
  • ベストアンサー率42% (75/176)
回答No.1

とりあえず、数字の分割からA1に"○位~○位"が入っていたとします。 まず左側=LEFT(A1,SEARCH("位",A1)-1) 右側=IF(RIGHT(A1,1)="~","",MID(A1,SEARCH("~",A1)+1,SEARCH("位",A1,SEARCH("位",A1)+1)-SEARCH("~",A1)-1)) 一応これでポイントすべき値が得られると思います あとは、表記の意味がいまいちわからないので、 何かあれば補足してください。

quincy
質問者

お礼

回答ありがとうございます。長い夏休みで留守にしていました。お礼が遅くなってすみません。 わかりにくい内容で申し訳ないです。私自身・・・途方に暮れていた内容ですので、うまく説明できずにいました。 それなのに真摯な回答ありがとうございます。感謝しております。

関連するQ&A

専門家に質問してみよう