Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12160 / 13644 ツリー ←次へ | 前へ→

【11879】分析ツール(回帰分析)のマクロについて ぽんぽん 04/3/18(木) 11:00 質問
【11887】Re:分析ツール(回帰分析)のマクロについて こうちゃん 04/3/18(木) 12:15 発言
【11890】Re:分析ツール(回帰分析)のマクロについて ぽんぽん 04/3/18(木) 13:17 質問
【11896】Re:分析ツール(回帰分析)のマクロについて こうちゃん 04/3/18(木) 14:18 回答
【11903】Re:分析ツール(回帰分析)のマクロについて ぽんぽん 04/3/18(木) 15:01 質問
【11907】Re:分析ツール(回帰分析)のマクロについて こうちゃん 04/3/18(木) 15:43 回答
【11909】Re:分析ツール(回帰分析)のマクロについて ぽんぽん 04/3/18(木) 15:57 質問
【11912】Re:分析ツール(回帰分析)のマクロについて こうちゃん 04/3/18(木) 16:06 発言
【11914】Re:分析ツール(回帰分析)のマクロについて ぽんぽん 04/3/18(木) 16:20 質問
【11919】Re:分析ツール(回帰分析)のマクロについて こうちゃん 04/3/18(木) 17:09 発言
【11920】本家で検索しました こうちゃん 04/3/18(木) 17:14 回答
【11921】Re:本家で検索しました ぽんぽん 04/3/18(木) 17:25 発言
【11922】Re:本家で検索しました こうちゃん 04/3/18(木) 17:29 発言
【11946】Re:本家で検索しました ぽんぽん 04/3/19(金) 9:06 発言
【11949】ワークシート関数でどうでしょ? こうちゃん 04/3/19(金) 9:58 回答
【11951】Re:ワークシート関数でどうでしょ? ぽんぽん 04/3/19(金) 10:18 質問
【11952】Re:ワークシート関数でどうでしょ? こうちゃん 04/3/19(金) 10:45 回答
【11954】Re:ワークシート関数でどうでしょ? ぽんぽん 04/3/19(金) 10:55 質問
【11957】ああ〜、すみません こうちゃん 04/3/19(金) 12:52 発言
【12010】Re:ああ〜、すみません ぽんぽん 04/3/22(月) 10:11 発言
【12012】Re:ああ〜、すみません こうちゃん 04/3/22(月) 10:32 回答
【12017】Re:ああ〜、すみません ぽんぽん 04/3/22(月) 11:42 質問

【11879】分析ツール(回帰分析)のマクロについて
質問  ぽんぽん  - 04/3/18(木) 11:00 -

引用なし
パスワード
   初めて投稿します。
分析ツール(回帰分析)のマクロを作りたいのですが、どうすればいいのでしょう?
「マクロの記録」でXの値とYの値を入力し、出力先も指定して「記録の終了」ボタンを押しました。
そして「実行」させると、「Yの範囲を入力してください」とのコメントが出てきます。
どうすれば・・・? なにぶん、初心者なものでよくわかりません。
教えてください。よろしくお願いいたします。

【11887】Re:分析ツール(回帰分析)のマクロにつ...
発言  こうちゃん E-MAIL  - 04/3/18(木) 12:15 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>初めて投稿します。
>分析ツール(回帰分析)のマクロを作りたいのですが、どうすればいいのでしょう?
>「マクロの記録」でXの値とYの値を入力し、出力先も指定して「記録の終了」ボタンを押しました。
>そして「実行」させると、「Yの範囲を入力してください」とのコメントが出てきます。

「Xの値とYの値を入力し」とありますが、「範囲」を入力しましたか?
ちなみに、下記のようになっているはずですが、
Yの範囲「ActiveSheet.Range("$B$1:$F$1")」に相当する部分はありますか?

Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$B$1:$F$1"), _
ActiveSheet.Range("$B$2:$F$2"), False, False, , ActiveSheet.Range("$K$4") _
, False, False, False, False, , False

マクロの記録で記録したコードをご提示いただくとレスが付けやすいと思いますよ。

【11890】Re:分析ツール(回帰分析)のマクロにつ...
質問  ぽんぽん  - 04/3/18(木) 13:17 -

引用なし
パスワード
   こうちゃんさん、早速のお返事ありがとうございます。

こうちゃんさんの書かれたコードになってなかったので、次のように自分なりにかえてみました。
Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$E$18:$E$21"), _
ActiveSheet.Range("$B$18:$C$21"), False, False, , ActiveSheet.Range("$A$38") _
, False, False, False, False, , False
"$E$18:$E$21"がYの範囲で、"$B$18:$C$21"がXの範囲です。(2次回帰です)
これでやってみると、今度は次のようなエラーメッセージが出ました。
実行時エラー '1004':
 'ATPVBAEN.XLA' が見つかりません。ファイル名およびファイルの保存場所が
 正しいかどうか確認してください。
 [ファイル] メニューの最近使用したファイルの一覧からファイルを開こうと
 している場合は、そのファイルの名前が変更されてないか、移動または削除
 されていないかどうか確認してください。

何を直せばよいのでしょうか?

【11896】Re:分析ツール(回帰分析)のマクロにつ...
回答  こうちゃん E-MAIL  - 04/3/18(木) 14:18 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>何を直せばよいのでしょうか?

アドインに分析ツールを追加したと思いますが、同様の手順で「分析ツール-VBA」を追加してみてください。

【11903】Re:分析ツール(回帰分析)のマクロにつ...
質問  ぽんぽん  - 04/3/18(木) 15:01 -

引用なし
パスワード
   こうちゃんさんへ 何度もありがとうございます。
ひとりで訳が判らずへこんでいたので大変ありがたいです。

>アドインに分析ツールを追加したと思いますが、同様の手順で「分析ツール-VBA」を追加してみてください。

一応、「分析ツール-VBA」は追加しています。
ただ、アドインで読み込んだ後「ツール」ー「分析ツール-VBA」という項はありません。
アドインのところをクリックすると「分析ツール」と「分析ツール-VBA」にチェックは入っています。
私の使用しているパソコンはmacなので少し見た目が違うかもしれませんが。。。

【11907】Re:分析ツール(回帰分析)のマクロにつ...
回答  こうちゃん E-MAIL  - 04/3/18(木) 15:43 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>一応、「分析ツール-VBA」は追加しています。
>ただ、アドインで読み込んだ後「ツール」ー「分析ツール-VBA」という項はありません。
これはOKです。
分析ツールの関数をVBAで使用するためのアドインなので、ツールメニューには表示されません。

>アドインのところをクリックすると「分析ツール」と「分析ツール-VBA」にチェックは入っています。
>私の使用しているパソコンはmacなので少し見た目が違うかもしれませんが。。。
ぽんぽんさんの書いたエラーは分析ツール-VBAがアドインされていない場合にも出るエラーだったので確認していただいたのですが、違うようですね。

X範囲の ActiveSheet.Range("$B$18:$C$21") が複数列になっているようなので、短列で指定してみていただけませんか?

#MACだと当方では再現ができないので、困ったかも・・(^^;)

【11909】Re:分析ツール(回帰分析)のマクロにつ...
質問  ぽんぽん  - 04/3/18(木) 15:57 -

引用なし
パスワード
   ご返答ありがとうございます。

>X範囲の ActiveSheet.Range("$B$18:$C$21") が複数列になっているようなので、短列で指定してみていただけませんか?

早速、短列指定にしてやってみましたが、やはり同じメッセージが出ました。
ダメですかねー うううー

【11912】Re:分析ツール(回帰分析)のマクロにつ...
発言  こうちゃん E-MAIL  - 04/3/18(木) 16:06 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>>X範囲の ActiveSheet.Range("$B$18:$C$21") が複数列になっているようなので、短列で指定してみていただけませんか?
>
>早速、短列指定にしてやってみましたが、やはり同じメッセージが出ました。
>ダメですかねー うううー

一度「新しいマクロの記録」で記録しなおしてみてはいかがでしょう?
Macなので関数の詳細が違うかもしれません。

【11914】Re:分析ツール(回帰分析)のマクロにつ...
質問  ぽんぽん  - 04/3/18(木) 16:20 -

引用なし
パスワード
   こうちゃんさん、何度もありがとうございます。
見捨てずに付き合ってくださってホントにありがとうございます。

>一度「新しいマクロの記録」で記録しなおしてみてはいかがでしょう?
>Macなので関数の詳細が違うかもしれません。

やってみました。新しいマクロの記録で短列指定でやってみましたが
やはり同じメッセージが・・・ 
はぁー 困りました。

【11919】Re:分析ツール(回帰分析)のマクロにつ...
発言  こうちゃん E-MAIL  - 04/3/18(木) 17:09 -

引用なし
パスワード
   >はぁー 困りました。
こまりましたねぇ〜
分析ツールの他の関数もだめですか?

【11920】本家で検索しました
回答  こうちゃん E-MAIL  - 04/3/18(木) 17:14 -

引用なし
パスワード
   ぽんぽんさん、残念ですがだめなようです。

Microsoftの技術情報検索のページです。

http://support.microsoft.com/default.aspx?scid=kb;ja;417135&Product=XL2001

解決策も示されていませんので、Mac版では分析ツールをVBAでは使用できないようです。

【11921】Re:本家で検索しました
発言  ぽんぽん  - 04/3/18(木) 17:25 -

引用なし
パスワード
   こうちゃんさん、たびたびありがとうございます。
そのページは私も見ていましたが、かなり古い記録なのでなんとか
なるのだろうか?と思っていたのですが・・・
やはりだめなのでしょうか。。。
色々ありがとうございました。感謝です。
また何かわかりましたら、レスお願いします!

【11922】Re:本家で検索しました
発言  こうちゃん E-MAIL  - 04/3/18(木) 17:29 -

引用なし
パスワード
   >そのページは私も見ていましたが、かなり古い記録なのでなんとか
>なるのだろうか?と思っていたのですが・・・
>やはりだめなのでしょうか。。。

マイクロ○フトがあんな書き方をしているときは、「次のバージョンまで直しません」って言ってるんだと解釈することにしています。(><)
また、情報があれば書き込みますね。

【11946】Re:本家で検索しました
発言  ぽんぽん  - 04/3/19(金) 9:06 -

引用なし
パスワード
   こうちゃんさん、おはようございます。

>マイクロ○フトがあんな書き方をしているときは、「次のバージョンまで直しません」って言ってるんだと解釈することにしています。(><)
>また、情報があれば書き込みますね。

ありがとうございます。
そうですかー 今、私はOS.Xを使用しているので、Excelのバージョンは10.0.0なんですが
それでも直ってないって事なんですよね・・・
他のmacユーザーはどうしてるんだろう???

【11949】ワークシート関数でどうでしょ?
回答  こうちゃん E-MAIL  - 04/3/19(金) 9:58 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>そうですかー 今、私はOS.Xを使用しているので、Excelのバージョンは10.0.0なんですが
>それでも直ってないって事なんですよね・・・
>他のmacユーザーはどうしてるんだろう???

わたしはMacユーザではありませんが、VBAでの直線回帰等に分析ツールは使いません。
ワークシート関数の SLOPE や INTERCEPT を使うことが多いです。
ワークシート関数ならMacでもいけるんじゃないでしょうか?

【11951】Re:ワークシート関数でどうでしょ?
質問  ぽんぽん  - 04/3/19(金) 10:18 -

引用なし
パスワード
   こうちゃんさん、こんにちは。
>わたしはMacユーザではありませんが、VBAでの直線回帰等に分析ツールは使いません。
>ワークシート関数の SLOPE や INTERCEPT を使うことが多いです。
>ワークシート関数ならMacでもいけるんじゃないでしょうか?

VBAなどについて、初心者なのですが表示したいのは2次回帰で(グラフはまた別に作ります)
分析ツールの回帰分析で得られる表です。(なのでXの範囲が2列にまたがってました。)
そういうのもワークシート関数でできますか?

【11952】Re:ワークシート関数でどうでしょ?
回答  こうちゃん E-MAIL  - 04/3/19(金) 10:45 -

引用なし
パスワード
   >VBAなどについて、初心者なのですが表示したいのは2次回帰で(グラフはまた別に作ります)
>分析ツールの回帰分析で得られる表です。(なのでXの範囲が2列にまたがってました。)
>そういうのもワークシート関数でできますか?

表すべてを作るのはどうなのかわかりませんが、例えば傾き・切片であれば・・

Y範囲 1,2,3,4
X範囲 2,2,4,6

とした場合

分析ツールの係数 「X 値 3」 0.272727  「X 値 4」 0.636364

INTERSEPT関数で計算した Y切片 0.272727
SLOPE関数で計算した 傾き 0.636364

のような、結果になります。
他も関数があるか、それを元に計算できると思いますよ。
例えば相関なら CORREL 関数で求められますし・・
#VBAじゃなくてワークシートに直接計算式でもOKですね。

HELPで関数および関連項目をチェックしてみてください。

【11954】Re:ワークシート関数でどうでしょ?
質問  ぽんぽん  - 04/3/19(金) 10:55 -

引用なし
パスワード
   こうちゃんさん、こんにちは。
>表すべてを作るのはどうなのかわかりませんが、例えば傾き・切片であれば・・
>
>Y範囲 1,2,3,4
>X範囲 2,2,4,6
>
>とした場合
>
>分析ツールの係数 「X 値 3」 0.272727  「X 値 4」 0.636364
>
>INTERSEPT関数で計算した Y切片 0.272727
>SLOPE関数で計算した 傾き 0.636364
>
>のような、結果になります。
>他も関数があるか、それを元に計算できると思いますよ。
>例えば相関なら CORREL 関数で求められますし・・
>#VBAじゃなくてワークシートに直接計算式でもOKですね。

2次回帰の場合、Yの値はひとつでXの値は2つになりますよね。
なので直線ではなく2次曲線なので、欲しいのは直線の傾きではなく、
1次式の項、2次式の項というものです。それらは調べてみても分析ツールで
出すように書かれてると思うのですが・・・
ワークシート関数のSLOPEやINTERSEPTは回帰直線の値だと思うのですが
どうでしょう?

【11957】ああ〜、すみません
発言  こうちゃん E-MAIL  - 04/3/19(金) 12:52 -

引用なし
パスワード
   ごめんなさい!!
完璧に勘違いしておりました。
LinEst関数をお試しください。

Sub test()

Dim LL As Variant
Dim i As Integer

LL = WorksheetFunction.LinEst(Array(3, 9, 3), _
  Array(Array(1, 2, 2), Array(1, 4, 4)), True, True)

For i = LBound(LL, 1) To UBound(LL, 1)
  Cells(i, 1) = LL(i, 1)
  Cells(i, 2) = LL(i, 2)
  Cells(i, 3) = LL(i, 3)
Next

End Sub

【12010】Re:ああ〜、すみません
発言  ぽんぽん  - 04/3/22(月) 10:11 -

引用なし
パスワード
   こうちゃんさん、おはようございます。
19日はせっかくお返事頂いていたのに、体調が悪くなってしまい
パソコンを見ることができなくなってしまいました。
申し訳ありません。
Linest関数と言うことですが、私はなにぶん初心者でそれがいったい
なんなのかさっぱりわかりません。しばらく勉強してみて
またここにレスしますので、たまにのぞいてやってください。
よろしくお願いします。

【12012】Re:ああ〜、すみません
回答  こうちゃん E-MAIL  - 04/3/22(月) 10:32 -

引用なし
パスワード
   ぽんぽんさん、こんにちは

>Linest関数と言うことですが、私はなにぶん初心者でそれがいったい
>なんなのかさっぱりわかりません。しばらく勉強してみて
>またここにレスしますので、たまにのぞいてやってください。
>よろしくお願いします。

説明が不親切でごめんなさい。
Linest関数は回帰分析の結果を配列で返す関数です。
例ではY範囲・X範囲を長苦節関数に指定してありますので、同様の数値を分析ツールで解析して比較してください。
私は直線回帰以外の回帰は詳しくありませんので、戻り値を説明しきれません。
詳細はHELPと、分析ツールと実行結果の比較で確認してみてください。
なお、Linest関数はワークシート上でも使用できます。
こちらもHELPで確認してみてくださいね。

【12017】Re:ああ〜、すみません
質問  ぽんぽん  - 04/3/22(月) 11:42 -

引用なし
パスワード
   こうちゃんさん、こんにちは。

こうちゃんさんの説明が不親切なのではないですよ。
私の知識がなにぶん中途半端なもので・・・
今、色々調べています。少しずつですがわかり始めました。
これらの値から簡単に2次回帰曲線とかも書けるのでしょうか?
また手の空いたときにでも、教えてください。
よろしくお願いいたします。

12160 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free