- 日時: 2012/06/06 19:17
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:Excel VBA,Excel2010,ワークシート関数,Excel の関数,エクセルの関数 * *********************************************************************************** '=================================================================================================== '投 稿 日:2012.05.06 '投 稿 者:VBレスキュー(花ちゃん) 'タイトル:VB2010 から Excel のワークシート関数を使用する '========1=========2=========3=========4=========5=========6=========7=========8=========9=========0 下記では、代表的な関数について試していますが、その他の関数についても同様操作で実行 できるはずですので、試して見て下さい。 '--------------------------------------------------------------------------------------------------
Private Sub Button19_Click(sender As System.Object, e As System.EventArgs) Handles Button19.Click Call ExcelOpen("", "") '新規ファイルをオープンして、Excel を起動
'===================== VB2010 からExcel の関数を使用する =====================
'-------------------- 下記のVB6.0用コードを移植 --------------------------- ' http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=128&no=8 '--------------------------------------------------------------------------
'仮データの入力 Dim xlRange As Excel.Range = Nothing Dim retValue As Double = 0 For c As Integer = 1 To 10 For r As Integer = 1 To 10 xlRange = xlSheet.Range(R1ToA1(r, c), R1ToA1(r, c)) retValue += 1 xlRange.Value = retValue MRComObject(xlRange) 'ここも直ちにデクリメントして下さい。 Next r Next c
xlRange = xlSheet.Range("B3:D10") 'Visual Basic から Excel のワークシート関数を使用する Dim xlFunction As Excel.WorksheetFunction = xlApp.WorksheetFunction
'指定セル範囲内のデータの個数を取得 retValue = xlFunction.Count(xlRange) 'Excel の裏に隠れたりしますので、オーナーウィンドウ(Me)を指定下さい。 MessageBox.Show(Me, "[A1:j10]の範囲内のデータの個数 = " & retValue & " です。")
'指定セル範囲内のデータの最小値を取得 retValue = xlFunction.Min(xlRange) MessageBox.Show(Me, "[A1:j10]の範囲内のデータの最小値 = " & retValue & " です。")
'指定セル範囲内のデータの最大値を取得 retValue = xlFunction.Max(xlRange) MessageBox.Show(Me, "[A1:j10]の範囲内のデータの最大値 = " & retValue & " です。")
'指定セル範囲内のデータの合計を取得 retValue = xlFunction.Sum(xlRange) MessageBox.Show(Me, "[A1:j10]の範囲内のデータの合計 = " & retValue & " です。")
'指定セル範囲内のデータの平均値を取得 retValue = xlFunction.Average(xlRange) MessageBox.Show(Me, "[A1:j10]の範囲内のデータの平均値 = " & retValue & " です。")
MRComObject(xlRange) MRComObject(xlFunction)
'============================================================================= 'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行 Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), False) 'False の場合保存しないで終了 'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし) Call ProcessCheck() End Sub
|