引数に指定したColor値の反転色を返します。
- 構文
- invertedColor( color )
- 引数
- color
- Color値
- 戻値
- 反転色
プログラム
//////////////////////////////////////////////////
// 【引数】
// color : Color値
// 【戻値】
// 反転色
//////////////////////////////////////////////////
FUNCTION invertedColor(color)
DIM array = colorToRGB(color)
arrayMap(255 + " - %val%", array)
RESULT = RGBToColor(array[0], array[1], array[2])
FEND
//////////////////////////////////////////////////
// 【引数】
// callback : 配列の各要素に適用するコールバック関数
// array : コールバック関数を適用する配列
// 【戻値】
// callback関数を適用した後、 適用後の要素を含む配列
//////////////////////////////////////////////////
PROCEDURE arrayMap(callback, var array[])
DIM tmp[RESIZE(array)]
DIM n = 0
FOR %val% IN array
tmp[n] = EVAL(callback)
n = n + 1
NEXT
RESIZE(array, RESIZE(tmp))
FOR n = 0 TO RESIZE(tmp)
array[n] = tmp[n]
NEXT
FEND
//////////////////////////////////////////////////
// 【引数】
// color : Color値
// 【戻値】
// 赤成分、緑成分、青成分を格納した配列
//////////////////////////////////////////////////
FUNCTION colorToRGB(color)
DIM array[2]
array[0] = color AND $FF
array[1] = (color AND $FF00) / $100
array[2] = (color AND $FF0000) / $10000
RESULT = SLICE(array)
FEND
//////////////////////////////////////////////////
// 【引数】
// r : 赤成分
// g : 緑成分
// b : 青成分
// 【戻値】
// Color値
//////////////////////////////////////////////////
FUNCTION RGBToColor(r, g, b)
RESULT = r + g * 256 + b * 65536
FEND
解説
- 2行目
- Color値をRGBの各成分に分解し配列に格納する。
DIM array = colorToRGB(color)
- 3行目
- 各成分を255から引く。
arrayMap(255 + " - %val%", array)
- 4行目
- RGB値からColor値に変換した値を戻り値として返す。
RESULT = RGBToColor(array[0], array[1], array[2])
反転色
色の各成分を255から引いた値が反転色になります。
プログラム実行例
指定した色の反転色を求める
DIM color = invertedColor(RGBToColor($e4, $b7, $d8))
DIM rgb = colorToRGB(color)
arrayMap("decToHex(%val%)", rgb)
PRINT "$" + JOIN(rgb, "")
//////////////////////////////////////////////////
// 【引数】
// callback : 配列の各要素に適用するコールバック関数
// array : コールバック関数を適用する配列
// 【戻値】
// callback関数を適用した後、 適用後の要素を含む配列
//////////////////////////////////////////////////
PROCEDURE arrayMap(callback, var array[])
DIM tmp[RESIZE(array)]
DIM n = 0
FOR %val% IN array
tmp[n] = EVAL(callback)
n = n + 1
NEXT
RESIZE(array, RESIZE(tmp))
FOR n = 0 TO RESIZE(tmp)
array[n] = tmp[n]
NEXT
FEND
//////////////////////////////////////////////////
// 【引数】
// color : Color値
// 【戻値】
// 赤成分、緑成分、青成分を格納した配列
//////////////////////////////////////////////////
FUNCTION colorToRGB(color)
DIM array[2]
array[0] = color AND $FF
array[1] = (color AND $FF00) / $100
array[2] = (color AND $FF0000) / $10000
RESULT = SLICE(array)
FEND
//////////////////////////////////////////////////
// 【引数】
// dec : 10進数
// 【戻値】
// 16進数に変換した値
//////////////////////////////////////////////////
FUNCTION decToHex(dec)
RESULT = FORMAT(VAL(dec), 0, -1)
FEND
//////////////////////////////////////////////////
// 【引数】
// color : Color値
// 【戻値】
// 反転色
//////////////////////////////////////////////////
FUNCTION invertedColor(color)
DIM array = colorToRGB(color)
arrayMap(255 + " - %val%", array)
RESULT = RGBToColor(array[0], array[1], array[2])
FEND
//////////////////////////////////////////////////
// 【引数】
// r : 赤成分
// g : 緑成分
// b : 青成分
// 【戻値】
// Color値
//////////////////////////////////////////////////
FUNCTION RGBToColor(r, g, b)
RESULT = r + g * 256 + b * 65536
FEND
- 結果
$1B4827
関連記事
- PEEKCOLOR (スクリプト関数)
- PEEKCOLOR関数は、指定座標の色を取得する関数です。
- colorToBGR
- Color値を青成分、緑成分、赤成分に変換し配列で返します。
- BGRToColor
- 引数に指定された青成分、緑成分、赤成分からColor値を求めます。
- colorToRGB
- Color値を赤成分、緑成分、青成分に変換し配列で返します。
- RGBToColor
- 引数に指定された赤成分、緑成分、青成分からColor値を求めます。
- CHKIMG (スクリプト関数)
- 指定画像が画面上にあるかチェックしあればその情報を返します。
- BALLOON (スクリプト関数)
- 指定したメッセージを吹き出しで表示します。
- FUKIDASI (スクリプト関数)
- 指定したメッセージを吹き出しで表示します。MSGBOX関数と違い処理を中断することはありません。BALLOON関数も同じく吹き出しを表示する関数です。
- Borders.Color プロパティ (Excel)
- 罫線の色を取得または設定します。
- Borders.ColorIndex プロパティ (Excel)
- 罫線または輪郭線の色を表す値を取得または設定します。
- complementaryColor
- 引数に指定したColor値の補色を返します。