• ベストアンサー

MSアクセスでエクセルのセルに色をつけるには

MSアクセスからエクセルシートを吐き出しているのですが、セルに色をつけたりして、飾りを付けたいと思っております。 どなたかお知恵をお貸し頂けませんでしょうか?

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

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

こんにちは。Wendy02です。 単に、AccessからExcelのシートのセルに色を付けたいといっても、それは様々な条件が重なってできるものであって、こちらでは、ご質問を具体化させることは出来ません。 以下は、サンプルですが、A1 から、連続したデータの中から、最小値を探して、それに色をつけるというコードです。 今回のコードは、私は、オートメーション・オブジェクトの基本中の基本ですが、簡単だと思うかどうかは、その人のレベルにもよります。なお、Access 2000 と Access 2003 とでは、若干、その感触が違うようです。 参考サイト: Access Club CreateObject関数:SampleFileHelp http://www.accessclub.jp/samplefile/help/help_207_3.htm この中に、「実行時バインディング」と「事前バインディング」についての説明がありますが、今回の場合は、この先の発展性を考えると、「実行時バインディング」にせざるを得ない場合があります。仮に、「実行時バインディング」しても、Excelを使う場合は、VB Editor側で、ツール-参照設定で、Microsoft Excel ?? Object Library (??は数字)は、チェックを入れておいたほうが便利です。 '-------------------------------------------------------------------- Sub Acc_XlTestSample()   Dim xlApp As Object   Dim xlBook As Object   Dim xlSheet As Object   Dim xlRng As Object   Dim xlMin As Double   Dim c As Variant      Const XLPATH As String = "C:\MyData\"  'データのパス   Const XLFNAME As String = "TestBook.xls" 'Excelファイル名      On Error GoTo ErrHandler   Set xlApp = CreateObject("Excel.Application") 'オブジェクトを作る   Set xlBook = xlApp.Workbooks.Open(XLPATH & XLFNAME)   xlApp.Visible = True   Set xlSheet = xlBook.Worksheets(1) '本来はシート名のほうがよい   Set xlRng = xlSheet.Range("A1").CurrentRegion 'A1からデータがなければならない   xlMin = xlApp.WorksheetFunction.min(xlRng) '最小値を出す   For Each c In xlRng    If c = xlMin Then     c.Interior.ColorIndex = 34 '水色    End If   Next c ErrHandler:   If Err.Number > 0 Then     MsgBox Err.Number & ": " & Err.Description ,16   End If   'Set xlRng = Nothing '現行では不要   'Set xlSheet = Nothing '現行では不要   Set xlBook = Nothing  'ここから   Set xlApp = Nothing  '絶対に必要 End Sub 'かならず、Set xlApp = Nothing マクロが終了する前、必ず通します。

fabu
質問者

お礼

ありがとうございます。 アクセスVBAとして実行すれば上手くいきました。VBAの操作は骨が折れますが、調べてカスタムしたいと思います。

その他の回答 (1)

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

こんばんは。 あまり答えが付きませんね。その文章からではむつかしいです。 「MSアクセスからエクセルシートを吐き出している」方法を分かりませんが、Access から、Excelのオートメーション・オブジェクトを取り出して、そして、シートオブジェクトからセルのプロパティに、ColorIndex を与えるだけのことなのです。検索すれば、サンプルコードはかなり出てくるかと思います。この種の内容では、一番初歩のものになるかと思います。 オブジェクトを取るのは、CreateObject("Excel.Application") か、GetObject("Excel.Application") のどちらかを使います。また、参照設定すれば、New Excel.Application とはなります。

fabu
質問者

お礼

ありがとうございます。 なかなかサンプルコードが見つからないですね。基本すぎるからなのでしょうか。