tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
VB2010 から Excel のセルにグラデーションを設定(VB.NET) ( No.6 )  [親スレッドへ]
日時: 2012/06/06 18:57
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[エクセル][][]                                                      *
* キーワード:Excel VBA,Excel.Range,マクロ,エクセル,セルにグラデーション,背景色   *
***********************************************************************************
'===================================================================================================
'投 稿 日:2012.05.05
'投 稿 者:VBレスキュー(花ちゃん)
'タイトル:VB2010 から Excel のセルにグラデーションを設定
'========1=========2=========3=========4=========5=========6=========7=========8=========9=========0

Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
   Call ExcelOpen("", "")     '新規ファイルをオープンして、Excel を起動
   '======================== セルにグラデーションを設定 =========================

   Dim xlRange As Excel.Range
   xlRange = xlSheet.Range("B2")
   xlRange.Value = "あいうえお"
   '確認のために、1秒間表示しておく
   System.Threading.Thread.Sleep(1000)

   Dim xlInterior As Excel.Interior
   xlInterior = xlRange.Interior
   Dim xlLinearGradient As Excel.LinearGradient
   Dim xlColorStops As Excel.ColorStops
   '塗りつぶしのパターンと色を表す、xlPattern クラスの定数を設定
   '検索キーワード [MSDN XlPattern 列挙型]  http://tinyurl.com/7bwazhr
   xlInterior.Pattern = Excel.XlPattern.xlPatternLinearGradient
   '型が不明の時は、下記のようにして調べる
   'Debug.Print(TypeName(.Gradient))    ' LinearGradient
   xlLinearGradient = DirectCast(xlInterior.Gradient, Excel.LinearGradient)
   xlColorStops = xlLinearGradient.ColorStops
   'グラデーションの塗りつぶしにおける直線の角度(0〜360の範囲)
   '左→右にグラデーション
   xlLinearGradient.Degree = 0
   Dim xlColorStop1 As Excel.ColorStop
   Dim xlColorStop2 As Excel.ColorStop
   xlColorStops.Clear()
   xlColorStop1 = xlColorStops.Add(0)
   xlColorStop2 = xlColorStops.Add(1)
   xlColorStop1.Color = Color.Red      '開始時の色
   xlColorStop2.Color = Color.Yellow   '終了時の色
   'このようにここまで掘り下げて変数に受けてデクリメントしないと解放されない
   MRComObject(xlColorStop2)
   MRComObject(xlColorStop1)
   MRComObject(xlColorStops)
   MRComObject(xlLinearGradient)
   MRComObject(xlInterior)
   MRComObject(xlRange)
   '確認のために、1秒間表示しておく
   System.Threading.Thread.Sleep(1000)
   '=============================================================================
   'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行
   Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), False)  'False の場合保存しないで終了
   'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし)
   Call ProcessCheck()
End Sub

上記サンプルの実行結果の図
http://www.hanatyan.sakura.ne.jp/samplepic/excelbut4_1.png



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