• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL97VBAにおける、TREND(ワークシート関数)の配列入力は?)

EXCEL97VBAにおけるTRENDワークシート関数の配列入力方法

このQ&Aのポイント
  • EXCEL97のワークシートでファイルを作成した際に、データ数が多くなり計算が遅くなるため、VBAのSub~End Subを使用して計算結果をセルに貼り付ける方法を採用しています。しかし、TREND関数をVBA上で使用する際に、配列の既知のyおよび既知のxの入力方法がわからず困っています。具体的には、VBAのプログラム上にある変数を用いてxおよびyの配列入力(数値取り込み)を行いたいです。
  • TREND関数はVBAでも使用できるが、VBAのプログラム上にある変数を用いた配列入力方法がわからない
  • EXCEL97のワークシートでデータ数が多いため、VBAのSub~End Subを使用してTREND関数の計算結果をセルに貼り付けている。しかし、VBA上で変数を用いた配列入力方法が不明

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答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

yohsshi
質問者

お礼

色々調べた結果、以下のような形にするとエラーが出なくなりました。 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関数を使用することで、エラーが出なくなりました。 できるということがわかったので、あきらめず考えることができました。 ありがとうございました。

yohsshi
質問者

補足

このプロシージャーはExcel97でも動作いたしました。 入力形式はこれであっているはずなのですが、 私の計算方式にアレンジすると、ERROR2015で 計算できなく苦しんでいます。 もう少し考えてみます。ありがとうございます。

関連するQ&A