Access‚©‚çExcel‚̃Oƒ‰ƒtƒEƒBƒU[ƒh‚ðŽg—p‚µ‚ăOƒ‰ƒt‚ð•\ަ‚³‚¹‚é‚É‚Í

Access97‚©‚çExcel97‚ðŒÄ‚яo‚µ‚ăOƒ‰ƒt‚ð•\ަ‚·‚éŠÖ”‚ð‰ðà‚µ‚Ü‚·BAccess‚©‚çExcel‚ðŒÄ‚яo‚µ‚Ä‘€ì‚·‚邱‚Æ‚ðƒI[ƒgƒ[ƒVƒ‡ƒ“(Automation)‚ƌĂт܂·B‚±‚±‚ŏЉ‚é—Ⴓ́AAccess‚Ì‚±‚Æ‚ðƒI[ƒgƒ[ƒVƒ‡ƒ“ƒNƒ‰ƒCƒAƒ“ƒg(Automation Client)¤Excel97‚Ì‚±‚Æ‚ðƒI[ƒgƒ[ƒVƒ‡ƒ“ƒT[ƒoiAutomation@Server)‚ƌĂт܂·B

Access97‚©‚çExcel97‚ðŒÄ‚яo‚µ‚ăOƒ‰ƒt‚ð•\ަ‚·‚é‚·‚é‚ɂ͂R‚‚̃vƒƒV[ƒWƒƒ‚ðŽg—p‚µ‚Ü‚·B

\•¶

OpenExcel_FS ƒI[ƒgƒ[ƒVƒ‡ƒ“‹@”\‚ð—˜—p‚µ‚ÄExcel97‚ð‹N“®‚µ‚Ü‚·B
DrawExcelChart_FS Excel97‚̃Oƒ‰ƒtƒEƒBƒU[ƒh‚ð—˜—p‚µ‚ăOƒ‰ƒt‚ð•\ަ‚µ‚Ü‚·B‚±‚̃vƒƒV[ƒWƒƒ‚ðŒÄ‚яo‚·‚Æ‚«‚Í‚RŒÂ‚̈ø”‚ª•K—v‚ɂȂè‚Ü‚·B
strDataRange ƒOƒ‰ƒt•\ަ‚·‚éƒf[ƒ^‚͈̔͂ðŽw’肵‚Ü‚·i•K{j
strChartTitle ƒOƒ‰ƒt‚̃^ƒCƒgƒ‹‚ðŽw’肵‚Ü‚·i•K{j
intChartType ƒOƒ‰ƒt‚ÌŽí—Þ‚ðŽw’肵‚Ü‚·iƒIƒvƒVƒ‡ƒ“jBÈ—ª‚·‚邯xl3DPie‚ƂȂè‚Ü‚·B

xl3DPie
xl3DPieExploded
CloseExcel_FS Excel97‚ðI—¹‚µ‚Ü‚·B

Žg—p—á‚P
‚±‚Ì—á‚ł́AƒvƒƒOƒ‰ƒ€ã‚Ńf[ƒ^‚ðì¬‚µ‚ăOƒ‰ƒt‚ð•\ަ‚µ‚Ä‚¢‚Ü‚·B

  1. Access97‚ð‹N“®‚µ‚ĐV‹K‚̃f[ƒ^ƒx[ƒX(MyDB.mdb)‚ðì¬‚µ‚Ü‚·B
  2. ƒf[ƒ^ƒx[ƒX‚̃_ƒCƒAƒƒOƒ{ƒbƒNƒX‚©‚烂ƒWƒ…[ƒ‹ƒ^ƒu‚ðƒNƒŠƒbƒN‚µ‚½‚çAV‹Kì¬ƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ă‚ƒWƒ…[ƒ‹‚̃EƒCƒ“ƒhƒE‚ð•\ަ‚³‚¹‚Ü‚·B
  3. ƒƒjƒ…[‚©‚çƒc[ƒ‹‚ðƒNƒŠƒbƒN‚µ‚ÄŽQÆÝ’è‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B
  4. MyLib.mda‚ÆMS Excel 8.0 Object Library‚ð“o˜^‚µ‚Ü‚·BMyLib.mda‚ð“o˜^‚·‚é‚ɂ́AŽQÆƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄMyLib.mda‚ð‘I‘ð‚µ‚Ü‚·BiÚ×‚́Aƒ‰ƒCƒuƒ‰ƒŠ[ƒf[ƒ^ƒx[ƒX‚Ì‘g‚ݍž‚Ý‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢j MS Excel 8.0 Object Library‚́AƒIƒuƒWƒFƒNƒg‚̈ꗗ‚©‚猟õ‚µ‚ă`ƒFƒbƒNƒ}[ƒN‚ðƒNƒŠƒbƒN‚µ‚Ä‚©‚çOKƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚щƒCƒuƒ‰ƒŠ[‚Ì“o˜^‚ªŠ®—¹‚µ‚Ü‚µ‚½B
  5. ƒ‚ƒWƒ…[ƒ‹ƒEƒCƒ“ƒhƒE‚ÉŽg—p—á‚P‚ðƒRƒs[•ƒy[ƒXƒg‚µ‚Ü‚·B
  6. ƒfƒoƒbƒOƒEƒCƒ“ƒhƒE‚ð•\ަ‚³‚¹‚½‚çSample1‚ðŽÀs‚µ‚Ü‚·B
  7. Excel97‚ª‹N“®‚³‚ê‚ăpƒCƒ`ƒƒ[ƒg‚ª•\ަ‚³‚ê‚Ü‚·B
    Module_Automation_Graph1_Fig1
    }1-Žg—p—á‚P‚Å•\ަ‚³‚ê‚éƒOƒ‰ƒt

  8. Excel97‚ð‚»‚Ì‚Ü‚Ü‚Ìó‘ԂŁAAccess97‚ɃtƒH[ƒJƒX‚ðˆÚ“®‚µ‚Ü‚·B
  9. Hello Sample1‚̃ƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ä‚¢‚Ü‚·‚Ì‚ÅOK‚̃{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B
  10. Excel97‚ÍŽ©“®“I‚ɏI—¹‚µ‚Ü‚·B


Public Sub Sample1()

  OpenExcel_FS
  If gobjExcel Is Nothing Then
      MsgBox "MS Excel 8.0 control is not installed on your computer!"
      Exit Sub
  End If

  With gobjExcel
      .Workbooks.Add
      With .ActiveSheet
          .Cells(1, 1).Value = "–¼‘O"
          .Cells(2, 1).Value = "tŽq"
          .Cells(3, 1).Value = "‰ÄŽq"
          .Cells(4, 1).Value = "HŽq"
          .Cells(5, 1).Value = "“~Žq"
          
          .Cells(1, 2).Value = "”„ã"
          .Cells(2, 2).Value = "60"
          .Cells(3, 2).Value = "25"
          .Cells(4, 2).Value = "10"
          .Cells(5, 2).Value = "5"
      End With
      
      DrawExcelChart_FS strDataRange:="A2:B5", _
                        strChartTitle:="‰c‹Æ’S“–ŽÒ•Ê”„ã", _
                        intChartType:=xl3DPieExploded
      
      MsgBox "Hello Sample1"
  End With
  
  CloseExcel_FS

End Sub @


Žg—p—á‚Q
‚±‚Ì—á‚ł́AAccess97‚É“Y•t‚³‚ê‚Ä‚¢‚éƒTƒ“ƒvƒ‹ƒf[ƒ^ƒx[ƒXiNorthwind.mdb)‚ðŽg—p‚µ‚洛i‹æ•ª•ʂ̔„ã‚‚ðWŒv‚µ‚ăOƒ‰ƒt•\ަ‚µ‚Ä‚¢‚Ü‚·B

  1. Access97‚É“Y•t‚³‚ê‚Ä‚¢‚é Northwind.mdb ‚ðŠJ‚«‚Ü‚·B
    i’ʏ킱‚̃tƒ@ƒCƒ‹‚́AC:\Program Files\Office\Samples‚̃tƒHƒ‹ƒ_‚ɃCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ü‚·Bj
  2. ƒf[ƒ^ƒx[ƒX‚̃_ƒCƒAƒƒOƒ{ƒbƒNƒX‚̃‚ƒWƒ…[ƒ‹‚̃^ƒu‚ðƒNƒŠƒbƒN‚µ‚½‚çV‹Kì¬‚̃{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ă‚ƒWƒ…[ƒ‹ƒEƒCƒ“ƒhƒE‚ð•\ަ‚³‚¹‚Ü‚·B
  3. Žg—p—á‚P‚Æ“¯—lAƒƒjƒ…[‚©‚çƒc[ƒ‹‚ðƒNƒŠƒbƒN‚µ‚½‚çŽQÆÝ’è‚ðƒNƒŠƒbƒN‚µ‚ÄMyLib.mda‚ÆMS Excel 8.0 Object Library‚ð“o˜^‚µ‚Ü‚·B
  4. ƒ‚ƒWƒ…[ƒ‹ƒEƒCƒ“ƒhƒE‚ÉŽg—p—á‚Q‚ðƒRƒs[•ƒy[ƒXƒg‚µ‚Ü‚·B
  5. ƒfƒoƒbƒOƒEƒCƒ“ƒhƒE‚ð•\ަ‚³‚¹‚ÄSample2‚ðŽÀs‚µ‚Ü‚·B
  6. Excel97‚ª‹N“®‚³‚ê‚洛i‹æ•ª•Ê”„ã‚̃pƒCƒ`ƒƒ[ƒg‚ª•\ަ‚³‚ê‚Ü‚·B
    Module_Automation_Graph1_Fig2
    }2-Žg—p—á‚Q‚Å•\ަ‚³‚ê‚éƒOƒ‰ƒt

  7. Excel97‚ð‚»‚Ì‚Ü‚Ü‚Ìó‘ԂŁAAccess97‚ɃtƒH[ƒJƒX‚ðˆÚ“®‚µ‚Ü‚·B
  8. Hello Sample2‚̃ƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ä‚¢‚Ü‚·‚Ì‚ÅOK‚̃{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B
  9. Excel97‚ÍŽ©“®“I‚ɏI—¹‚µ‚Ü‚·B
Public Sub Sample2()

  Dim rsSales As Recordset
  Dim strSQL As String
  
  Dim strDataRange As String
  Dim strChartTitle As String

  OpenExcel_FS

  strSQL = "SELECT ¤•i‹æ•ª.‹æ•ª–¼, Sum(Žó’–¾×.’P‰¿*Žó’–¾×.”—Ê) AS ‹àŠz" _
         & " FROM (¤•i INNER JOIN Žó’–¾× ON ¤•i.¤•iƒR[ƒh = Žó’–¾×.¤•iƒR[ƒh)" _
         & " INNER JOIN ¤•i‹æ•ª ON ¤•i.‹æ•ªƒR[ƒh = ¤•i‹æ•ª.‹æ•ªƒR[ƒh" _
         & " GROUP BY ¤•i‹æ•ª.‹æ•ª–¼" _
         & " ORDER BY Sum(Žó’–¾×.’P‰¿*Žó’–¾×.”—Ê) DESC;"

  Set rsSales = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

  With gobjExcel
      .Workbooks.Add
      With .ActiveSheet
          .Cells(1, 1).Value = "¤•i‹æ•ª"
          .Cells(1, 2).Value = "”„ã‹àŠz"
          .Range("A2").CopyFromRecordset rsSales
          .Columns("A:B").AutoFit
      End With
      
      strDataRange = "A2:B" & Format(rsSales.RecordCount + 1) ' ==> A2:B9
      strChartTitle = "¤•i‹æ•ª•Ê”„ã"
      
      DrawExcelChart_FS strDataRange, strChartTitle, xl3DPieExploded
      
      MsgBox "Hello Sample2"
      
  End With
  
  rsSales.Close
  Set rsSales = Nothing
  
  CloseExcel_FS

End Sub 

Tip1:
CopyFromRecordSetƒƒ\ƒbƒh‚́AƒŒƒR[ƒhƒZƒbƒg(rsSales)‚Ì‘SƒŒƒR[ƒh‚ðExcel97‚̃V[ƒgã‚ÌA2‚̃Zƒ‹‚ðŠî“_‚ɓǂݍž‚݂܂·B

Tip2:
ƒJƒ‰ƒ€ƒ^ƒCƒgƒ‹‚Ƀe[ƒuƒ‹‚̃tƒB[ƒ‹ƒh–¼‚ðŽg—p‚·‚邯‚«‚́AƒtƒB[ƒ‹ƒhƒRƒŒƒNƒVƒ‡ƒ“‚ÌNameƒvƒƒpƒeƒB‚ðŽg‚¢‚Ü‚·B
With .ActiveSheet
     .Cells(1, 1).Value = rsSales.Fields(0).Name
     .Cells(1, 2).Value = rsSales.Fields(1).Name
End With