###該当のソースコード
ExcelVBA
Sub cal()
dim wb as Workbook
dim ws as Worksheet
dim i as Integer 'データのあるシート数
ThisWorkbook.Open
wb = Workbook.Add
For i=1 To Thisworkbook.Worksheet.Count
Thisworkbook.Worksheet.Activate
'2列のデータを読み込む
'分析ツールにデータを入れる
'結果を変数に代入
'結果を記録するシートを作成
'結果を記録する
Next i
end Sub
Sub cal()
Dim wbRead As Workbook '読込ブック
Dim wbWrite As Workbook '出力ブック
Dim shtR As Worksheet '読込シート
Dim shtW As Worksheet '出力シート
Dim rng As Range '対象範囲
Dim nmA As Integer '取得値1
Dim nmB As Integer '取得値2
Dim nmRes As Integer '計算結果
Dim i As Integer 'ループ用変数
'読込ブックの指定
Set wbRead = ThisWorkbook '現在開いているブックが入力ブックとなる場合
'Set wbRead = Excel.Workbooks.Open("C:\Tera\入力ファイル.xlsx") '別ファイルを入力ファイルとする場合
'出力ブックの作成
Set wbWrite = Excel.Workbooks.Add
'新規ブックの既存シートが邪魔な場合は下記で削除
'For i = wbWrite.Worksheets.Count To 2 Step -1
' '新規ブックの既存シートを削除(先頭シート以外)
' wbWrite.Worksheets(i).Delete
'Next i
'読込ブックの全てのシートをループ処理
For Each shtR In wbRead.Worksheets
'結果を記録するシートを作成
Set shtW = wbWrite.Worksheets.Add(, wbWrite.Worksheets(wbWrite.Worksheets.Count))
shtW.Name = "集計_" & shtR.Name
'分析対象範囲の指定
Set rng = shtR.Range("A:B")
'分析ツールにデータを入れる
Application.Run "ATPVBAEN.XLAM!Mcorrel", rng, shtW.Range("A1"), "C", True
'⇒詳細不明のためここでは「分析ツール」-「相関」の分析としています。
' 実装時には目的の分析を「マクロの自動記録」でVBAコードに記録して参考にすればいいと思います。
'読み込みシートからセルの値を取得する方法(ここではとりあえず1~10行目までを取得)
'For i = i To 10
' '2列のデータを読み込む
' nmA = shtR.Cells(i, "A")
' nmB = shtR.Cells(i, "B")
'
' '結果を変数に代入
' nmRes = nmA + nmB
'
' '結果を出力シートに記録する
' shtW.Cells(i, "A") = nmRes
'Next r
Next shtR
'新規ブックの先頭シートを削除
'wbWrite.Worksheets(1).Delete
'出力ブックの保存
wbWrite.SaveAs "C:\Tera\出力ファイル.xlsx"
wbWrite.Close
End Sub