
プログラミングを勉強しているものです。
以下に示すプログラムを修正して原点を1とする半径が1の円の上半円の半円のグラフ描くプログラムを作りたいのです。直す箇所は2行だけと書いてあったのですが、何処をどのように直せば良いか教えていただきたいです。宜しくお願い致します。
Sub ex12()
fillfunc 0#, 10#, 60
mygraph 1, 1, 61, 2
End Sub
Sub fillfunc(x1 As Double, x2 As Double, nd As Integer)
Dim n As Integer
Dim x As Double, y As Double, dx As Double
dx = (x2 - x1) / nd
With Worksheets("Sheet1")
For n = 0 To nd
x = x1 + dx * n
y = Sin(x)
.Cells(n + 1, 1) = x
.Cells(n + 1, 2) = y
Next n
End With
End Sub
Sub mygraph(sr As Integer, sc As Integer, lr As Integer, lc As Integer)
ActiveSheet.ChartObjects.Add(200, 10, 240, 200).Select
ActiveChart.ChartWizard _
Source:=Range(Cells(sr, sc), Cells(lr, lc)), _
gallery:=xlLine, Format:=2, PlotBy:=xlColumns, _
categorylabels:=1, serieslabels:=0, HasLegend:=2, _
Title:="y", categorytitle:="x", valuetitle:="", extratitle:=""
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こうですかね。
Sub ex12()
fillfunc 0#, 2#, 60 '変更①
mygraph 1, 1, 61, 2
End Sub
Sub fillfunc(x1 As Double, x2 As Double, nd As Integer)
Dim n As Integer
Dim x As Double, y As Double, dx As Double
dx = (x2 - x1) / nd
With Worksheets("Sheet1")
For n = 0 To nd
x = x1 + dx * n
y = Sqr(1 - (x - 1) * (x - 1)) '変更②
.Cells(n + 1, 1) = x
.Cells(n + 1, 2) = y
Next n
End With
End Sub
Sub mygraph(sr As Integer, sc As Integer, lr As Integer, lc As Integer)
ActiveSheet.ChartObjects.Add(200, 10, 240, 200).Select
ActiveChart.ChartWizard _
Source:=Range(Cells(sr, sc), Cells(lr, lc)), _
gallery:=xlLine, Format:=2, PlotBy:=xlColumns, _
categorylabels:=1, serieslabels:=0, HasLegend:=2, _
Title:="y", categorytitle:="x", valuetitle:="", extratitle:=""
End Sub
No.1
- 回答日時:
こんにちは
>プログラミングを勉強しているものです。
どこまでわかっていますか?
ご提示のプログラムは y=sin(x) をグラフ化するものです。
手順として、
1)xの各値に対する、yの値を計算し表を作成する
2)上記の表をエクセルのグラフ機能を利用してグラフ化する
というもので、それぞれをサブルーチン化してあります。
2)は指定されたセル範囲のデータを折れ線グラフに表示するだけのものなので、グラフの内容を変えたければ、表の値(=(x,y)のデータ群)変えればよいことになります。
値を計算している部分は何行もありませんので、そこだけ理解できれば、何を修正すれば良いかもわかると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
順列をランダムに発生するプログラム
Visual Basic(VBA)
-
VBA言語プログラミング
Visual Basic(VBA)
-
VBAプログラミング
Visual Basic(VBA)
-
4
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
-
5
ListBox1をClickしたときのイベント
Visual Basic(VBA)
-
6
エクセル 2つの列にある値の完全一致を抜き出すVBA
Visual Basic(VBA)
-
7
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
8
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
9
VBA同じシートの別ブックに転記していく方法
Visual Basic(VBA)
-
10
vbaの計算 if elseと範囲について
Visual Basic(VBA)
-
11
ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています
Visual Basic(VBA)
-
12
日付を重複させずに数えたい
Visual Basic(VBA)
-
13
VBA コードの意味を教えて下さい。
Visual Basic(VBA)
-
14
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
15
Excel VBA 大量のレコードからある列の重複数をカウントする方法?拡張編
Visual Basic(VBA)
-
16
【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。
Visual Basic(VBA)
-
17
VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「"」付にならないよ
Visual Basic(VBA)
-
18
複数セルに〇印をつけるマクロ
Visual Basic(VBA)
-
19
ExcelのVBAでシフト表を作っていますが、バグが出て困っています
Visual Basic(VBA)
-
20
vba メモリ節約
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
65536は2の何乗なのでしょうか?
-
5
Visual C++でdebugとreleaseで...
-
6
加速度から変位の変換について
-
7
Java 電卓の連続計算
-
8
matlabのquadl関数について
-
9
[急募]Pythonについてです。
-
10
MATLABの積分について
-
11
C# 計算処理中に実行中ウィン...
-
12
移動平均を計算するプログラム
-
13
Javaでのある数の小数点乗に...
-
14
CとFORTRANの計算速度はどちら...
-
15
変化させるセルが変化しない
-
16
VBとVBAの違い
-
17
Date型の範囲を超える数値について
-
18
60進数の四則計算
-
19
排他的論理和 BCC(水平パリテ...
-
20
VBでReplace
おすすめ情報
公式facebook
公式twitter