
EXCEL97のワークシートでファイルを作成したのですが、データ数が膨大で動かない(計算終了まで時間がかかりすぎる)ため、ワークシート関数の代わりに、VBAのSub~End Subを作成し、計算結果(式ではなく数値)のみをセルに貼り付ける作業を行っています。
ワークシート関数のTRENDを使用しているのですが、これをVBA上で使用するためにどう入力すれば良いかわかりませんので、ご教授いただきたいと思います。
myCELL=Application.TREND(既知のy, 既知のx, 新しいx, 定数)
でmyCELLを計算させたいのですが、
配列の既知のyおよび既知のxがどのように入力すれば良いか判りません。
この数値をセル上において、例えばA1:A10、B1:B10という形にすることは
できますが、求めていますのは
X1,X2~X10 Y1,Y2~Y10の変数がVBAのプログラム上にある場合の配列の入力
(数値取込?)を教えていただきたいと思います。
TREND関数はVBAでも使用できる関数となっていますが、
私の求めるやり方は不可能である場合もその旨をお教えください。
よろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
VBA内でTrendを使ってみました。
らしき答えは出ました。参考になる?(Excel97がないため、Excel2000で確認しています)
Sub Trend_Test()
Dim y(10) As Double '既知のy
Dim x(10) As Double '既知のx
Dim newX As Double '新しいx
'配列y()、x()に値を代入
y(1) = 100: x(1) = 1
y(2) = 200: x(2) = 2
y(3) = 300: x(3) = 3
y(4) = 400: x(4) = 4
y(5) = 500: x(5) = 5
y(6) = 600: x(6) = 6
y(7) = 700: x(7) = 7
y(8) = 800: x(8) = 8
y(9) = 900.1: x(9) = 9
'新しいx(例)
newX = 5.5
'試しに計算結果を出力
Range("A1") = Application.Trend(y, x, newX, True)
Range("A2") = Application.Trend(y, x, newX + 1, True)
Range("A3") = Application.Trend(y, x, newX + 2, True)
End Sub
この回答への補足
このプロシージャーはExcel97でも動作いたしました。
入力形式はこれであっているはずなのですが、
私の計算方式にアレンジすると、ERROR2015で
計算できなく苦しんでいます。
もう少し考えてみます。ありがとうございます。
色々調べた結果、以下のような形にするとエラーが出なくなりました。
Sub TEST_Trend()
Dim x As Variant
Dim y As Variant
Dim NEWx As Double
x = Array(0.005479452, 0.019178082, 0.038356164, 0.082191781, 0.167123288 _
, 0.252054795, 0.328767123, 0.41369863, 0.495890411, 0.580821918, 0.663013699 _
, 0.747945205, 0.832876712, 0.915068493, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20)
y = Array(0.055, 0.055, 0.057, 0.064, 0.086, 0.086, 0.087, 0.096 _
, 0.099, 0.1, 0.1, 0.1, 0.01, 0.103, 0.106, 0.15, 0.233 _
, 0.347, 0.483, 0.64, 0.817, 0.995, 1.163, 1.31, 1.545, 1.797, 2.07)
NEWx = 0.05
Dim i As Integer
For i = 1 To 20
Cells(i, 1) = Application.Trend(y, x, NEWx + i - 1, True)
Next i
End Sub
Array関数を使用することで、エラーが出なくなりました。
できるということがわかったので、あきらめず考えることができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでチェックボックスを...
-
VBA Private Sub Worksheet_Cha...
-
EXCEL VBA 印刷時にメッセー...
-
VBAを利用して宛名ラベルを作り...
-
エクセル vbaのリストボックス...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
エクセルでハイパーリンクのコピー
-
EXCELで縦の行全てに一括して文...
-
Wordの差し込み印刷で空白行が...
-
EXCELでタイトル行と一番下の行...
-
エクセル 数式の無効化
-
EXCEL 連動したドロップダウン...
-
エクセルの計算式でコンマを付...
-
名簿の漢字名を関数で半角カナ...
-
16桁以上の「0」に変換されてし...
-
Excelのテーブル上のセルの保護...
-
エクセルでセル内改行の1行目...
-
Excelでセルを次の行の先頭の列...
-
エクセルで空白に自動で文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを利用して宛名ラベルを作り...
-
エクセルでチェックボックスを...
-
Excel マクロ 選択セルの値の枚...
-
エクセル vbaのリストボックス...
-
EXCEL VBA 印刷時にメッセー...
-
CSVデータを任意の様式に入れる...
-
EXCEL97VBAにおける、TREND(ワ...
-
Excelで度数分布表の作り方
-
Excel vbaのテキストボックスの...
-
エクセルについて
-
VBA Private Sub Worksheet_Cha...
-
エクセル マクロで教えて下さい。
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
エクセルの計算式でコンマを付...
-
エクセルでハイパーリンクのコピー
-
EXCELでタイトル行と一番下の行...
-
エクセル 数式の無効化
-
名簿の漢字名を関数で半角カナ...
-
EXCEL 連動したドロップダウン...
おすすめ情報