• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELをVBにインポートしたい)

ExcelをVBにインポートする方法と数え方についてのアドバイスをいただけませんか?

このQ&Aのポイント
  • VB2008で作成するプログラムで、Excelで作った授業カリキュラムの登録日数を知りたいです。ExcelをVBにインポートして、個別の授業日数を数える方法についてアドバイスをいただきたいです。
  • 具体的には、Aさんの授業期間は9月11日から10月10日までで、Bさんの授業期間は9月14日から10月13日まで、Cさんの授業期間は9月15日から10月14日まで、Dさんの授業期間は9月17日から10月16日までです。ExcelをVBでインポートして、それぞれの授業期間を数える方法を教えてください。
  • Excel(2007)をVBにインポートして、授業期間を数える方法を知りたいです。インポートが完了した後、VBでcountaなどの関数を使用して授業期間を数える方法についてのアドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

一応、作ってみましたが、結果としては、掲示板で見せられるほどのレベルではありませんでした。 それと、以前、COMで参照設定して、外すのにひどく面倒な思いをしました。VB2008ではどうなっているのでしょうか。ガーベジ・コレクションとは言っても、そのプロシージャ内で作られたものだけで、COMで生成したものは、残骸がプロセス中に残ってしまいます。 そこで、変数のデータ型の宣言はほとんど入っていませんし、意味が違うかもしれませんが、こんなように考えてみました。 xlApp = CreateObject("Excel.Application") 'オートメーション化してあげて、以下のようにして取れないでしょうか。     xlBook = xlApp.Workbooks.Open(Fn) 'Fn は、ファイル名     xlSheet = xlBook.Worksheets("Sheet1")  With xlSheet    lastRow = .cells(10000, 2).end(xlUp).row    For i = 2 To lastRow      Ar = Split(.cells(i, 2).value, "~")      Dif1 = CDate(Ar(1))      Dif2 = CDate(Ar(0))      Dif = DateDiff(DateInterval.Day, Dif2, Dif1)      MessageBox.Show(.cells(i, 1).value & " " & Dif)    Next  End With

関連するQ&A

専門家に質問してみよう