- 日時: 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
|