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などの関数を使用して授業期間を数える方法についてのアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

EXCELをVBにインポートしたい

EXCELをVBにインポートしたい よろしくお願いします。 ・VB2008でプログラムを作ろうと思っています。 ・Excelで作った授業カリキュラムがあります。 登録日が違う数名の授業日数を知るプログラムを作りたいです。 Aさん 9/11~10/10 Bさん 9/14~10/13 Cさん 9/15~10/14 Dさん 9/17~10/16 の4種類の登録があります。 Excel(2007)をVBにインポートして、それぞれの授業日数を数えたいです。 Excelでそのまま数えれば簡単なのですが。。。。 インポートの方法と数え方(countaのような)について、 アドバイスいただけませんでしょうか。

  • qc4
  • お礼率78% (183/234)

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

  • ベストアンサー
  • 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

  • VB2008のデータをサーバーを用いずに保存する方法を教えてください。

    VB2008のデータをサーバーを用いずに保存する方法を教えてください。 1ヶ月間のパソコン教室があって、 Aさん 9/11~10/10 Bさん 9/14~10/13 Cさん 9/15~10/14 Dさん 9/17~10/16 の4種類の登録があります。 土日祝日が休みです。 それぞれの出席日数を毎回計算しないでいいように、 データのフォームを閉じても再度開いたとき、 日数データが残っているようにしたいのですが…。 よろしくお願いします。

  • VBからExcelが起動しません

    Excelファイルを開くプログラムをVBで作成したのですが 1つのパソコンだけ実行時エラー5が発生してExcelを起動できません どなたかお助けください プログラムはこんなかんじです WKPATH = "D:\Program Files\Microsoft Office\Office\EXCEL.EXE " & " c:\a.xls" exl = Shell(WKPATH, 1) ちなみにエラーが発生するパソコンはNT4.0sp6です

  • エクセルVBAでアクセスのテーブルインポート

    VBA初心者です。 エクセルのVBAでデータベースA.mdbのテーブルAをデータベースb.mdbにインポートするプログラムお教えて下さい。 '================================================ sub インポート () Set cn = New Connection'データベース接続 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source="C:\A.mdb" ●ここにPG書くような感じだと思いますが。   cn.Close: Set cn = Nothing'後処理 End Sub '================================================ もし難しい場合、アクセスのVBAでインポートをするが、この実行をエクセルでするよなのでもいいです。この場合は、インポートされるb.mdb側のプログラムをエクセルで実行するようにしたいです。(A.mdbは多数あるため、変更が大変なため) よろしくお願い致します。

  • VBからExcelのデータを並べ替えしたい

    VB2008を使用しています。 VBからExcelのデータを並べ替えしたいのですが、どうやればいいのかわかりません。 VBからExcelを立ち上げ、シートおよびセルを参照するところまではできています。 下記を実行するとA列とD列が入れ替わっているだけです。 k_syain_Sheet.Range("A1:D10000").Sort(k_syain_Sheet.Range("A2"), Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending, _ k_syain_Sheet.Range("D2"), , Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending, _ k_syain_Sheet.Range("B2"), Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending) やりたいことは、Excel上のA1~D10000にデータが入っており、A1~D1はタイトル行です。 これから、最優先されるキー「A1」 2番目に優先されるキー「D1」 3番目に優先されるキー「B1」(それぞれ昇順)として並べ替えをしたいのです。 よろしくお願いします。

  • お願いします!!!エクセル関数の計算式の意味を教えてください。

    こんばんは。 以前、こちらで下記の計算式を教えていただきましたが、意味がわかりません。 (1)=SUMPRODUCT((A1:INDIRECT("A"&COUNTA(A:A))="A")*(B1:INDIRECT("B"&COUNTA(B:B))="女")*(C1:INDIRECT("C"&COUNTA(C:C))="勤務1")*(D1:INDIRECT("D"&COUNTA(D:D))="OK")) 応用をして使用したいと思いましたが、関数の意味をみてもよくわかりません。 これがこうだから、こういう式になる、というように、この計算式を言葉で説明していただきたいのです。 (2)=SUBTOTAL これもフィルタをかけた際にカウントする式だと思いますが、詳しい事を教えていただきたいです。 申し訳ありませんがどなたか詳しい方、よろしくお願いします。

  • エクセルで作成した住所録をワードにImportして印刷したいのですが・・

    エクセルで作成された住所録と、レターの雛形のワードファイルがあります。 エクセルの住所録は A1名前 B1会社名 C1役職 D1住所 という形で作成されています。 ワードのレター文書には左上に会社名、役職、名前を入力する欄があり、レターを印刷かける際にエクセルから住所録をImportしたいのですが、可能でしょうか?

  • エクセルでできますか?

    エクセル初心者です。 2種類の記号をつかって、あらかじめパターンを決めておき(この場合だと4パターンa、b、c、d) ○○=a ○×=b ×○=c ××=d A列に2種類の記号(白黒、○×など)を不規則に入れていき、B列にa、b、c、dを自動的に表記させることは できますか(一マスおきになる)? 例 A B ○ b × ○ a ○ × d × × c ○

  • VB作図について

    vbにエクセルデータを取り込み作図したいのですが、例えばA1がx、B1がY、C1がX’、D1がy’、とゆうように座標で線を描きたいのですが、まずエクセルのセルからデータを取り込み方が分かりません。 コマンドの入力の方法を教えてください。 宜しくお願いします。

  • VBからEXCELへ

    変数を使って範囲指定をしたいのですが・・・ VBからEXCELに出力する時なんですけど、 例えばコンボボックス1、コンボボックス2に デフォルトとして、数字が1,2,3・・・10と入っています。 コンボ1、2 数字が1だったら、EXCELのA1 数字が2だったら、EXCELのB1 数字が3っだたら、EXCELのC1 コンボ1が1、コンボ2が3の場合A1~C1までを線で囲みたいのです。 DIM AKEY AS STRING DIM BKEY AS STRING SELECT CASE COMB1 CASE 1 AKEY = "A1" CASE 2 AKEY = "B1" CASE 3 AKEY = "C1" END SELECT SELECT CASE COMB2 CASE 1 BKEY = "A1" CASE 2 BKEY = "B1" CASE 3 BKEY = "C1" END SELECT CELL("AKEY:BKEY").Box lsNormal, btBox と書いたら、座標エラーとでます。 どうかお願いします。

  • ACCESS、フィールドが異なるデータのインポート

    例えば ファイル1 フィールド A B C D E データ   1 2 3 4 5 ファイル2 フィールド A C D E データ   6 7 8 9 のように、フィールドの項目数が異なるデータをインポートする場合は どのようにすればいいのでしょうか? アンケートのメールを処理するのですが、応えられていない項目についてはデータが無いもので・・・ ちなみにインポート処理さえ出来るのであれば、エクセルでもかまいません。 すみませんがよろしくお願いします。

専門家に質問してみよう