作りながら学ぶVBAプログラミング

罫線を消したり書いたりする、よく使うサブルーチンライブラリ

cellLine.bas

CellLine.bas は、枠線を書くためのサブルーチンが集められたサブルーチンライブラリです。

このライブラリは、以下のライブラリを必要とします。
strSpCut.bas
str_Split.bas
toStr.bas

  • strSpCut.bas
  • str_Split.bas

CellLine.bas には、現在以下のサブルーチンが組み込まれています。

指定範囲のセルの背景色/パターンをクリア

書式: CellLine.Clear(sr, sc, er, ec) ‘sr:範囲開始行
‘sc:範囲開始桁
‘er:範囲終了行
‘ec:範囲終了桁
CellLine.Clearは、LastRange.bas の 縦方向、横方向の使用中セルを算出する MaxRowColPT と組み合わせて使うことが多くシートを使いまわすときに必要になるシートクリア時に使用します。

使用例、


Dim ssht
Dim kc 'データ連続検査桁
Dim sr, sc 'データ開始行、開始桁
Dim er, ec
Dim maxRow, maxCol '最大行、最大桁
Dim filler '空セル許可数
Set ssht = ActiveSheet
sr = 3 'タイトル行を含ませる
sc = 2
kc = 3 '氏名欄が空欄でなければデータが入っていると考える
filler = 1 '1行ぐらい空のセルがあっても気にしない
Call LastRange.MaxRowColPT(ssht, kc, sr, sc, er, ec, filler)
Call CellLine.Clear(sr, sc, er, ec)


結果、
※3列目の色がクリアされています。


文字色、背景色、罫線、テキストをクリア

書式 CellLine.CellClear(sr, sc, er, ec) ‘sr:範囲開始行
‘sc:範囲開始桁
‘er:範囲終了行
‘ec:範囲終了桁

使用例、

Dim ssht
Dim kc 'データ連続検査桁
Dim sr, sc 'データ開始行、開始桁
Dim er, ec
Dim maxRow, maxCol '最大行、最大桁
Dim filler '空セル許可数
Set ssht = ActiveSheet
sr = 3 'タイトル行を含ませる
sc = 2
kc = 3 '氏名欄が空欄でなければデータが入っていると考える
filler = 1 '1行ぐらい空のセルがあっても気にしない
Call LastRange.MaxRowColPT(ssht, kc, sr, sc, er, ec, filler)
Call CellLine.CellClear(sr, sc, er, ec)


結果、

別に範囲がわかれば、
Range(Cells(sr, sc), Cells(er, ec)).Clear
でもかまわないんですけど、ちょっとだけ文字数が少ないのと、自分で定義しておくことで記憶しやすいというメリットがあります。


セルのフォント色(文字色)指定

書式 FontColor(sr, sc, er, ec, valu) ‘sr:範囲開始行
‘sc:範囲開始桁
‘er:範囲終了行
‘ec:範囲終了桁
‘valu:色コード

使用例,

Dim sr, sc 'データ開始行、開始桁
Dim er, ec
sr = 3
er = 10
sc = 4
ec = 4
Call CellLine.FontColor(sr, sc, er, ec, Format(RGB(255, 0, 0), "0"))


結果、


セルの背景色設定

書式 CellLine.BackGround(sr, sc, er, ec, valu) ‘sr:範囲開始行
‘sc:範囲開始桁
‘er:範囲終了行
‘ec:範囲終了桁
‘valu:色コード

使用例、

Dim sr, sc 'データ開始行、開始桁
Dim er, ec
sr = 3
er = 10
sc = 4
ec = 4
Call CellLine.FontColor(sr, sc, er, ec, Format(RGB(255, 255, 255), "0"))
sc = 4
ec = 5
Call CellLine.BackGround(sr, sc, er, ec, Format(RGB(255, 0, 0), "0"))


結果、


セルの文字色を16進コードで取得

書式 CellLine.Get_ColorHEX(ssht, sr, sc) ‘セルの文字色を16進コードで取得
‘ssht:シートオブジェクト
‘sr:セル行
‘sc:セル桁
‘戻り:16進色コード文字列

使用例、

Dim sr, sc 'データ開始行、開始桁
Dim ssht, HEX_STR
Set ssht = ActiveSheet
sr = 5
sc = 4
HEX_STR = CellLine.Get_ColorHEX(ssht, sr, sc)
MsgBox ("sr=" + Format(sr, "0") + " sc=" + Format(sc, "0") + " hexcolor=" + HEX_STR)


結果、


セルの文字色を取得

書式 CellLine.Get_Color(ssht, sr, sc) ‘ssht:シートオブジェクト
‘sr:セル行
‘sc:セル桁
‘戻り:色コード数値

使用例、

Dim sr, sc 'データ開始行、開始桁
Dim ssht, COLOR_CODE
Set ssht = ActiveSheet
sr = 5
sc = 4
COLOR_CODE = CellLine.Get_Color(ssht, sr, sc)
MsgBox ("sr=" + Format(sr, "0") + " sc=" + Format(sc, "0") + " Color=" + Format(COLOR_CODE, "0"))


結果、

セルの背景色を16進コードで取得

Function Get_BackGroundHEX(ssht, sr, sc) ‘ssht:シートオブジェクト
‘sr:セル行
‘sc:セル桁
‘戻り:16進色コード文字列

使用例、

Dim sr, sc
Dim ssht, HEX_STR
Set ssht = ActiveSheet
sr = 5
sc = 3
HEX_STR = CellLine.Get_BackGroundHEX(ssht, sr, sc)
MsgBox ("sr=" + Format(sr, "0") + " sc=" + Format(sc, "0") + " Color=" + Format(HEX_STR, "0"))


結果、


セルの背景色を取得

Function Get_BackGround(ssht, sr, sc) ‘ssht:シートオブジェクト
‘sr:セル行
‘sc:セル桁
‘戻り:色コード数値

使用例、

Dim sr, sc
Dim ssht, COLOR_CODE
Set ssht = ActiveSheet
sr = 5
sc = 3
COLOR_CODE = CellLine.Get_BackGround(ssht, sr, sc)
MsgBox ("sr=" + Format(sr, "0") + " sc=" + Format(sc, "0") + " Color=" + Format(COLOR_CODE, "0"))


結果、


文字色/背景色の設定

書式 Sub FontStyle(sr, sc, er, ec, command) ‘sr:範囲開始行
‘sc:範囲開始桁
‘er:範囲終了行
‘ec:範囲終了桁
‘command:設定コマンド

‘ 書式:属性:値,・・・
‘ 属性:
‘  color:文字色
‘  background:背景色


使用例、

Dim sr, sc
Dim er, ec
Dim ssht, COLOR_VAL
Set ssht = ActiveSheet
sr = 5
sc = 2
er = 8
ec = 7
Call CellLine.FontStyle(sr, sc, er, ec, "color:" + Format(RGB(0, 0, 255), "0") + "," + "background:#ffff00")


結果、


指定区切り文字で文字列を2分解する

Function Para2(iBuff, Delim, smbl, valu) ‘iBuff:対象文字列
‘Delim:区切り文字
‘smbl:戻り:分解文字列
‘valu:戻り:分解文字列

使用例、
'Dim Simbol,smbl,value
'buff = "#NAME#=123
'Simbol = CellLine.Para2(buff,"=",smbl,value)



16進色コードを RGBに分解

書式 Function Color2RGB(iBuff, rr, GG, BB) ‘iBuff:対象文字列
‘RR:戻り:赤要素値
‘GG:戻り:緑要素値
‘BB:戻り:青要素値


罫線を消したり書いたりする CellLine ダウンロード





  • このエントリーをはてなブックマークに追加

関連記事

ゆずまる・ゆぅべぇ

システムエンジニア/プログラマ歴数十年のゆずまるです。

バナーにもあるように変体的な犬マニアで生まれてからこのかた犬のいない日は経験していません。
中でもコッカースパニエルとラブラドールが死ぬほど好き!

そんなゆずまるは、20数種類の様々な言語を使用してシステム開発をおこなってきました。

そこで使ってきた各言語の自作ライブラリ中のVBAのライブラリを公開しています。

※姉妹サイトに C,PHP などのサイトもネット上に浮遊させております。そちらでもお役にたてましたら無上の喜びw

あなたの一助になれば幸いです。