tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
VB2010 から Excel のワークシート関数を使用する(VB.NET) ( No.21 )  [親スレッドへ]
日時: 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



 [スレッド一覧へ] [親スレッドへ]