ktCalShape2

ktCalShape関数の描画モジュールです。
VBAから利用する場合は、こちらのサブルーチンを使います。


【 構 文 】

Call ktCalShape ( 位置, [種類], [色], [透過], [可視] )

位置 ‥‥‥ Range 型
種類 ‥‥‥ Variant( Integer ) 型    (省略可、省略時:1 )
‥‥‥ Variant( Integer / String ) 型    (省略可、省略時:"H0000FF" )
透過 ‥‥‥ Variant( Boolean / Double ) 型    (省略可、省略時:TRUE )
可視 ‥‥‥ Variant( Boolean ) 型    (省略可、省略時:TRUE )

【 パラメータ 内容 】

位  置 ‥‥‥ Shape図形を描画するセルの Rangeオブジェクトを指定します。
単独セルのみです(結合セルは可)。
 
種  類 ‥‥‥ そのセルに描画するシェープ図形の種類を指定します。
    1:円       2:上三角    3:下三角
    4:四角    5:菱形       6:星型
    7:十字    8:六角形    9:ハート形
  10:二重丸  

    0:描画しない
        または、そのセルに描画されているシェープ図形の消去

省略した場合は「1:円」と見故します。
 
‥‥‥ シェープ図形の色を下記の何れかで指定します。
    ・カラーインデックス番号(1〜56の数値)
    ・16進数でRGBを指定( "Hbbggrr" 形式の文字列)
省略した場合は「赤(H0000FF)」と見故します。

1〜56の色番号は、図形で指定するスキームカラー番号ではなく、
セルの文字/背景色で指定するカラーインデックスです。
[kt関数メニュー:カラーパレット]で確認できます。
 
透  過 ‥‥‥ 枠線のみ/塗潰し/半透明を指定します。
    塗潰し    :FALSE または 数値の[0]
    枠線のみ:TRUE または 数値の [1]
    半透明    :数値で[0.1(濃)〜0.9(淡)]

省略した場合は「TRUE(枠線のみ)」と見故します。
 
可  視 ‥‥‥ TRUE    :描画したシェープ図形を表示状態とします。
FALSE  :              〃              を非表示状態とします。
省略した場合は「TRUE(表示)」と見故します。

  シェープ図形の種類が固定で、条件によって表示有無が変化するといった場合、「種類」には、その図形種類を固定で設定しておき、表示有無は「可視」条件で対応してください。
  「種類」を『0 または 図形種類』で切り換えても同じ効果が得られますが、こちらの方法の場合には、シェープ図形の【追加/削除】という処理になりますので、ktCalShape関数 を多用している場合に負荷が大きくなります。
  「可視」で対応すれば、一度描画した図形がそのまま使われ、プロパティ変更だけで済みますので、その分だけ負荷が小さくなります。

 
[種類・色・透過・可視]の各引数はエラー値(#N/A 等)を受け取る事が可能です。これらの引数の
    何れかがエラー値の場合は、他の引数の内容に係わらず『図形は非表示』となります。
 

【 解 説 】

  ktCalShape関数の描画処理本体です。
マクロを記述しなくても「kt関数メニュー:カレンダーマーク描画」で描画させる事ができます。

尚、そのセルが『保護(オブジェクト)』されている場合は、図形描画されません。

  [種類]を(1〜9)にすると、[位置]に指定したセルにシェープ図形を描画します。図形のサイズは、
指定のセルに丁度収まる(セルの高さ/幅の内、小さい方のサイズでの正方形領域でセルの中央)
ように描画されます。[種類]を(0)にすると、指定セル内にあるシェープ図形を削除します。

  [色]に16進でRGBを指定する場合は『"H"+6文字』固定サイズです。例えば、赤色の場合は以下の
ようにして指定します。
      ・直接、"H0000FF" と16進文字列を記述する。
      ・RGB関数や vbRed といったシステム定数を16進文字列に変換する。
            Dim strColor As String
            strColor = "H" & Right("000000" & Hex(vbRed), 6)
            strColor = "H" & Right("000000" & Hex(RGB(255, 0, 0)), 6)

(注) カラーインデックスに対応するカラーパレットは『ブック』ごとで定義されています(標準では
      3番は赤ですが、あるブックでは3番を[赤]以外の色に変更する事が可能です)。引数[色]に
      カラーインデックス番号を指定した場合は、この[ktCalShape2 サブルーチン]が記述されている
      ブックのカラーパレットではなく、引数[位置]に指定したセルが在るブックのカラーパレット
      適用されます。

なお、透過処理はエクセルのバージョンによって見栄えが異なります。 

  論理値[True]を数値として扱う場合、ワークシート上では[1]として解釈される為、引数[透過]は
     枠線のみ:TRUE または 数値の [1]
という仕様になっています。ところが、VBA上で論理値[True]を数値に変換すると[−1]という値に
なります。しかし、ktCalShape2 サブルーチンでは、[透過]に【True 】を指定した場合は[−1]という
数値ではなく、ちゃんと『論理値のTrue 』として認識しますので、正しく「枠線のみ」という描画が行
なわれます。
 
 

Home  kt関数 Top  kt関数 Ref  Back Page  Next Page


角田 桂一 Mail:addinbox@h4.dion.ne.jp CopyRight(C) 2001 Allrights Reserved.