C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: エクセルVBAのt.test関数について


(過去ログ 148 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■86624 / inTopicNo.1)  エクセルVBAのt.test関数について
  
□投稿者/ emu (1回)-(2018/02/22(Thu) 06:57:48)

分類:[.NET 全般] 

エクセル2013を使用しています。
t.test関数の引数の範囲を動的に変更したいです。

具体的には、データがA~Xまでそれぞれ10個存在しており、第一引数をA列で固定、第二引数をB→C→D、、、
と変更していきたいと考えています。
for文で回せないかやっているのですが、B2:B11をC2:C11のように変えることができず、つまずいています。

何か方法をご存知の方がいらっしゃったらご指導ください。
引用返信 編集キー/
■86625 / inTopicNo.2)  Re[1]: エクセルVBAのt.test関数について
□投稿者/ 魔界の仮面弁士 (1574回)-(2018/02/22(Thu) 08:58:34)
No86624 (emu さん) に返信
> B2:B11をC2:C11のように変えることができず、つまずいています。

Excel.Range オブジェクトの Offset プロパティを試してみてください。
引用返信 編集キー/
■86628 / inTopicNo.3)  Re[2]: エクセルVBAのt.test関数について
□投稿者/ emu (2回)-(2018/02/22(Thu) 14:31:20)
>>B2:B11をC2:C11のように変えることができず、つまずいています。
> 
> Excel.Range オブジェクトの Offset プロパティを試してみてください。

いろいろ試してみているんですが、"オブジェクトが必要です"とエラーがでてしまいます、、、

For i = 1 To n
    
res(i) = t.test(worksheetsfunctionOffset(A2, 0, 0, x, 1), worksheetsfunction.Offset(c2, 0, i, x, 1), 1, 1)

Next i



引用返信 編集キー/
■86629 / inTopicNo.4)  Re[3]: エクセルVBAのt.test関数について
□投稿者/ YAS (2回)-(2018/02/22(Thu) 21:05:26)
2018/02/22(Thu) 21:06:06 編集(投稿者)
Excel VBAで書くと下のようになると思います。

Sub test()
    Dim n As Integer
    n = 10
    Dim res() As String
    ReDim res(n)
    Dim i As Integer
    For i = 1 To n
        res(i) = t_test(ActiveSheet.Range("A2:A11").Offset(0, i - 1))
        Debug.Print (res(i))
    Next
End Sub

Public Function t_test(r As Range) As String
    t_test = r.Address
End Function

結果
$A$2:$A$11
$B$2:$B$11
$C$2:$C$11
$D$2:$D$11
$E$2:$E$11
$F$2:$F$11
$G$2:$G$11
$H$2:$H$11
$I$2:$I$11
$J$2:$J$11

引用返信 編集キー/
■86630 / inTopicNo.5)  Re[3]: エクセルVBAのt.test関数について
□投稿者/ YAS (3回)-(2018/02/22(Thu) 21:06:17)
2018/02/22(Thu) 21:08:11 編集(投稿者)

すみません。間違えて二重投稿してしまいました。

引用返信 編集キー/
■86632 / inTopicNo.6)  Re[4]: エクセルVBAのt.test関数について
□投稿者/ emu (4回)-(2018/02/22(Thu) 23:46:10)
No86629 (YAS さん) に返信
> 2018/02/22(Thu) 21:06:06 編集(投稿者)
> 
> Excel VBAで書くと下のようになると思います。
> 

回答ありがとうございます。
示していただいたソースは確かに参照範囲を能動的に変えることができていますが、エクセルのt.test関数の引数にres(i)を使用しようとすると「オブジェクトが必要です」というエラーになってしまいます。これでは本題が解決しないのですが解決策をご存知なら教えていただきたいです。

引用返信 編集キー/
■86633 / inTopicNo.7)  Re[5]: エクセルVBAのt.test関数について
□投稿者/ YAS (4回)-(2018/02/23(Fri) 06:07:47)
t.test関数は,VBAで使うときにはT_Test()になります。

Sub test()
    Dim n As Integer
    n = 10
    Dim res() As Double
    ReDim res(n)
    Dim i As Integer
    For i = 1 To n
        res(i) = WorksheetFunction.T_Test(Range("A2:A11"), Range("A2:A11").Offset(0, i), 2, 1)
    Next
End Sub

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -