• ベストアンサー

エクセルのVBAでy=x^2のグラフを書きたい

エクセルのVBAでy=x^2のグラフを書きたいのですが、どのようにしたらできるのでしょうか? ちなみにVBEのイミディエイトは何をするところでしょうか? debug.print 1とすると1が表示されますが、ここの出力を意図的にクリアする方法はありますか?

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

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

#2です。 シート上に直接y=x^2のグラフを描いてみました。 Sub tst1() ActiveSheet.DrawingObjects.Delete z1 = 0.3 '表示を適当にする倍率 z2 = 10 '表示を適当にする倍率 xg = 800 '頂点、原点 yg = 50 * 50 '頂点 原点 '---初期設定 x0 = xg y0 = yg * z1 x1 = xg y1 = yg * z1 '---右側第1象限 For x = 2 To 50 Step 1 y = x ^ 2 ActiveSheet.Shapes.AddLine x0, y0, xg + z2 * x, (yg - y) * z1 x0 = xg + z2 * x y0 = (yg - y) * z1 '--左側第4象限 ActiveSheet.Shapes.AddLine x1, y1, xg - z2 * x, (yg - y) * z1 x1 = xg - z2 * x y1 = (yg - y) * z1 Next x End Sub 上記でZ1,Z2が必要な量的説明が現在の小生にできませんが、とりあえずサンプルをお見せします。

mine_23
質問者

お礼

なるほど、シェープを使うとシートにグラフが書けますね。 初めて知りました。 後、色を変えたり、ボックスの塗り絵などしたいのですが、このような情報はどこから仕入れているのでしょうか? 私は本など体系的に解説したものでないと、理解しづらいので、そのあたりについて書かれている本などありますか? VB(VBA)はPHPと違ってシンプルでないところが覚えにくいです。 VCのMFCで挫折、Javaで挫折した共通の理由があります。 私って知能指数が低いのでしょうか?Cやperlやphpは覚えやすいですが、ライブラリ関係を覚えるのが苦手です。 皆さんは、このようなライブラリ対策はどうしているのでしょうか?

その他の回答 (2)

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

エクセルでグラフを描く場合、 (1)エクセルのグラフ種類の中の散布図(線ありが良さそう)で書かせる。 A列  B列 B列は式 =A2^2出だし、式を下方向に複写する。 X Y 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 11 121 12 144 13 169 14 196 15 225 16 256 挿入-グラフー散布図ー連結線有りの種類を選ぶ でグラフを描かせてください。 (2)VBAを使うときは 上記散布図を描かせる方式だと、マクロの記録をとれば、VBAコードが、簡単に判ります。グラフはエクセルのグラフシートに描かれます。 台紙に当たる(コンテナ)ものについて (A)ワークシート上 (B)ワークシートに貼り付けるフォーム上 (C)ワークシートに貼り付けるフォーム上のコントロール上 (何でも良いわけでなく、適したコントロール上に) に描くことが考えられる。 (A)ワークシートを台紙とする場合 旧BASICのようにPSET(点を画面にかく)がVBAでは無いと思うので、Shapesの直線の小さい物をつないで行って曲線らしく見せるようにすると思うが、今やってみると、小生の力不足で難渋している点があるので、できれば上げます。 ーーーーー イミディエイトウインドウは、直接エクセルと対話できる仕組みです。関数やユーザー関数やマクロ(プロシージュアー)の結果が判ります。実行されるということです。 イミディエイトウインドウは、ウオッチウインドウとともに、デバッグ(誤り原因箇所を見つける)するとき、途中での進行状況を、変数の中身の点からをフォローして,焦点を絞り、究明する(ロジックなどの誤りを気づく)一助にするものです。 VBA・マクロの解説書には1章を割いて説明しています。 http://www.accessclub.jp/actips/tips_83.htm http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_040_025.html

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

どういうグラフにするのでしょうか。 グラフエリアにプロットして直線で結ぶのでしょうか。 イミディエイトでは、1行のみコマンド等を実行できます。 例えば、a=b+c ? a などと入力できます。

mine_23
質問者

お礼

回答ありがとうございます。 プロットPSet? 直線Line?など使って、グラフィックエリア?(これをエクセルVBAでどのように設定するかわからない)のようなものを使って、描きたいです。 ExcelVBAでは、画像処理の方法は何通りもあるのでしょうか?

関連するQ&A