• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAの3次方程式にたいする質問)

VBAで3次方程式の編集について困っています

このQ&Aのポイント
  • VBAで3次方程式の編集を行っているが、130行目から170行目の意味がわからない
  • 質問者は、誰かに助言を求めているが、全てを理解する必要はないとしても、何か知識がある方に助言をお願いしたいと述べている
  • センセーショナルなタイトルを使用することで、VBAの3次方程式編集の困りごとが伝わりやすくなっている

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

  • ベストアンサー
noname#212058
noname#212058
回答No.3

回答No.2 です。 GoSub 170 は、170行目に処理を移動して、Return まで 実行したら戻ってくる、という処理です。 Goto は指定した行に移動するだけなのに対して、GoSub は 移動した後でまた戻ってくるのが特徴です。 なので、140行目からの処理の実行順は XC = CC GoSub 170           ← 処理を170行目に移動 BC = A * XC ^ 3 + B * XC - C ← 170行目の処理 Return             ← Retuen なので移動元(GoSub)に戻る YC = BC            ← GoSub の次の処理(150行目)を実行 (以下省略) ですね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#212058
noname#212058
回答No.2

コロン(:)は処理の区切りを現します。 VBAでは通常、1行には1処理しか書けませんが、コロンを 付けることで複数の処理を1行に連続して書くことができます。 具体的に言えば、130行目の CC = 0: AC = 0.1 は CC = 0 AC = 0.1 と2行に分けたのと同じ意味です。 …しかし、クラシックな記法のプログラムですね。 いまどき GoSub 170 なんて処理を見るとは思いませんでした。

minosibasiba
質問者

補足

ありがとうございます。GO Subの意味もよくわかりませんので、できれば教えていたたきたいのですが。

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8047/17199)
回答No.1

何がわからないの? 言語の文法がわからなくて何をやっているのかが理解できないの? それともやっていることはわかるけど,なぜそれで3次方程式が解けるのかがわからないの? 前者なら,VBAの文法を検索して見つけたページに書いてあることを理解しろということだ。 後者なら,ニュートン法を検索して見つけたページに書いてあることを理解しろということだ。

minosibasiba
質問者

補足

文法の意味がよくわかりません。:は何を表してるんでしょうか?検索してもなかなかでてきません

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBA

    A列を基準にBC列が空白ならAの数値を入れて、A>BならB列を更新、A<CならC列を更新 A列が数値以外ならその行をスキップ、という処理をしたいのですが Option Explicit Dim A As Range, B As Range, C As Range Dim i As Long Sub test() For i = 1 To 10 Set A = Cells(i, 1) Set B = A.Offset(0, 1) Set C = A.Offset(0, 2) If IsNumeric(A) Then Else Exit Sub End If If B.Value = "" Then B.Value = A.Value If C.Value = "" Then C.Value = A.Value If A.Value > B.Value Then B.Value = A.Value If A.Value < C.Value Then C.Value = A.Value Next i End Sub とすると数値以外の行の時点で停止してしまいます。 その行を飛ばして次の行に進むにはどうしたらいいのでしょうか?

  • 接線の方程式を求める問題です

    円Aの中心点A(Xa,Ya)、半径r 円上にはない点として、点B(Xb,Yb) 以上が、与えられていることです。 そこで、 点Bをとおり円A上の点を接点とする、接線の方程式を求めたい。 という問題です。 ************ 私は、 円上の点を点C(Xc,Yc)として、 直線BCの直線の式と、直線BCに対する垂線ACとの連立方程式で点Cを求めたのですが、 それでは 「点Cがわかってたらこの求め方でいいけど、点Cがわかってない状態ではどうやってもとめるのか?」といわれました。 半径rを使って求めるらしいのですが、助けて欲しいです;_; お願いします。

  • VBAでスクロールバーを動かしても値が変わらない

    図のようなスクロールバーを動かして、それぞれの値と、A4のセルの色が変わるものを作りたいのです。 プログラムは、 Sub スクロール1_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール2_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール3_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub ですが、スクロールバーに関連付けられていないようです。基本ですみませんが、関連付けるにはどうすればいいのでしょうか。

  • VBA 11行おきにセルの値を1づつ増やす

    セルの値を最終行まで、11行おきに1増やしていく方法をお教えください。 現在1800行あります。 下記の構文を延々と続けるのは、気が遠くなります。 何卒よろしくお願いします。 Private Sub CommandButton1_Click() With Worksheets("○○○”) .Range("A1").Value = "1" .Range("A12").Value = .Range("A1").Value + 1 .Range("A23").Value = .Range("A12").Value + 1 .Range("A34").Value = .Range("A23").Value + 1 .Range("A45").Value = .Range("A34").Value + 1 ・・・・・・・ ・・・・・・・・ End With End Sub

  • EXCEL VBAを用いての並び替えからの挿入表示

    EXCEL VBAを用いての並び替えからの挿入表示についての質問です。 A列に文字と数字の組み合わせデータが入っています。 カテゴリーが4つ「AC○」「BC○」「CC○」「DC○」(○は数字です)があります。 A列は「AC○」「BC○」「CC○」「DC○」の順番で並んでいます。 (ただし3つのカテゴリしかないデータの場合もあり。) そこにC1セルにデータ「AC10」、E1セルにデータ「AC12」、G1セルにデータ「BC10」、I1セルにデータ「DC10」が入ってマクロ実行した場合、添付の『マクロ実行後』のように挿入させたいです。 つまり4つのカテゴリのいずれかを判断し、A列の各カテゴリの一番最後の行に挿入させたいです。 該当したカテゴリがなければ、「AC○」「BC○」「CC○」「DC○」のカテゴリの順で最初の部分に入れる。 このような処理をするにはVBA記述はどのようにすればよいでしょうか? 私のVBAの知識レベルはマクロ記録をしてそれを元に少し修正や機能追加できたりするくらいの初心者です。 よろしくお願いいたします。

  • 連立方程式が解けません

     以下のa,b,c,dが求められません。 どなたか、解答手順も合わせて教えてください。  a^2+bc=-1 ab+bd=0 ac+dc=0 bc+d^2=-1    ^2は2乗です この4っつの連立方程式から導いてください、よろしくお願いします。

  • VBAのプロシージャについて質問です

    以下にA、B2つのプロシージャを書きます。 A  Sub kubun( ) Dim taipu As String Select Case Range("C27").Value Case 100,110,120 taipu="乗用車" Case 201,211,221 taipu="RV・4WD" Case 300,305,310 taipu="スポーツカー" Case Else taipu="正しいコードを入力してください" End Select MsbBox taipu ←←←← End Sub B  Sub iro( ) Select Case Range("C34").Value Case "RED" Range("C34").Font.ColorIndex=3 Case "BLUE" Range("C34").Font.ColorIndex=5 Case "PINK" Range("C34").Font.ColorIndex=7 Case "GREEN" Range("C34").Font.ColorIndex=10 Case Else MsbBox "RED,BLUE,PINK,GREENのいずれかを入力してください"←←←←     End Select End Sub A,Bの←←←←の部分ですが、End Selectの前に入れるか、 後ろに入れるかはどうやって決めるのですか。 こういう場合は前に入れる、こういう場合は後ろに入れるといった 決めごとを教えてください。 宜しくお願いいたします。

  • エクセル VBAで

    変動する数値が、セル A1に入る状況で、 該当シートに Private Sub Worksheet_Change(ByVal Target As Range) If Range("A1").Value = 1 Then Range("C62").Value = "○" ElseIf Range("A1").Value = 2 Then Range("C62:C63").Value = "○" ElseIf Range("A1").Value = 3 Then Range("C62:C64").Value = "○" ElseIf Range("A1").Value = 4 Then Range("C62:C65").Value = "○" ElseIf Range("A1").Value = 5 Then Range("C62:C66").Value = "○" ElseIf Range("A1").Value = 6 Then Range("C62:C67").Value = "○" ElseIf Range("A1").Value = 7 Then Range("C62:C68").Value = "○" ElseIf Range("A1").Value = 8 Then Range("C62:C69").Value = "○" ElseIf Range("A1").Value = 9 Then Range("C62:C70").Value = "○" ElseIf Range("A1").Value = 10 Then Range("C62:C71").Value = "○" ElseIf Range("A1").Value = 11 Then Range("C62:C72").Value = "○" ElseIf Range("A1").Value = 12 Then Range("C62:C73").Value = "○" ElseIf Range("A1").Value = 13 Then Range("C62:C74").Value = "○" ElseIf Range("A1").Value = 14 Then Range("C62:C75").Value = "○" ElseIf Range("A1").Value = 15 Then Range("C62:C76").Value = "○" End If End Sub と言ったマクロを記述しましたが、 動作がどうにも重くて困っています。 一度、プレビューをした後は特に遅くなります。 何か良い解決方法はありますでしょうか?

  • エクセルVBAのテキスト保存の仕方

    次のようなマクロがあり、最後の行でできあがった表をクリップしています。 現在そのクリップボードの表をテキストに手動で貼り付けてその都度保存しているのですが これを自動的にテキスト保存できればと思っています。 更にファイル名は左上1セルめ(この場合多分A1000のセル)にある文字列の最初から10文字をファイル名にしたいです。 マクロはよく知らないので記述の仕方を教えてください。 ※このマクロはマクロの記録により自動作成したものです。 よろしくお願いします。 (office2013/Windows7) Sub rep1000行削除集約() Dim i As Long Range("AC1.AI650").Copy Range("A1000").PasteSpecial Paste:=xlPasteValues Range("A1000:A2000").Value = Range("A1000:A2000").Value Range("A1000:A2000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete Application.Goto Reference:="R1000C1" Range("A1000:G1000").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy End Sub

  • エクセルのフォームのVBAについて

    VBAがまったくわからないのに参考書を見て高度な事に挑戦しています フォームは作れてフォームをクリックやら入力やらして作ったOKボタンを押すと シート2のA1B1C1‥の列に入力文字だけが羅列されます。 しかし次にやろうとするとA2B2C2‥と下に行かず又A1B1C1‥の列の文字が変更になり続きません。何がいけないのでしょうか? Sub 入力() Dim LastRow As Long With Worksheets("sheet2") LastRow = Worksheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row .Range("A" & LastRow).Value = Worksheets("sheet1").Range("A5").Value .Range("B" & LastRow).Value = Worksheets("sheet1").Range("A7").Value .Range("C" & LastRow).Value = Worksheets("sheet1").Range("A8").Value .Range("D" & LastRow).Value = Worksheets("sheet1").Range("A10").Value End With End Sub と参考書とおりいれたのですが‥。教えて下さい。