• 検索結果がありません。

1.3. 色彩

1.3.3. フォームとコード

43 txt文字色.Font.Bold = chk太字

End Sub

Function BGR$(W$) 'RGB$から16進数BGR$に変換

BGR$ = "&H" & Right$(W$, 2) & Mid$(W$, 3, 2) & Left$(W$, 2) End Function

44

spn明度 [6] 明度の値を調節します。最大(Max)=12, 初期値(Value)=6.

lbl彩度 [彩度(S)]

txt彩度 [240] 240: 0-240の範囲で彩度を表示します。

spn彩度 [12] 彩度の値を調節します。最大(Max)=12, 初期値(Value)=12.

lbl赤 赤(R)

txt赤 0-255の範囲で赤の値を表示します。

spn赤 赤の値を調節します。

lbl緑 緑(G)

txt緑 0-255の範囲で緑の値を表示します。

spn緑 緑の値を調節します。

lbl青 青(B)

txt青 0-255の範囲で青の値を表示します。

spn青 青の値を調節します。

マルチページの外に次のオブジェクトがあります。

txt文字色 色相、明度、彩度、赤、緑、青の値にしたがって文字色の見本を示しま す。

txt下線色 色相、明度、彩度、赤、緑、青の値にしたがって文字色の見本を示しま す。

cmd実行 プログラムを実行します。

cmd消去 出力用の WordファイルやExcelファイルをを消去します。

cmd復元 復元を 1回実行します。[Ctrl]+Zと同じです。

Sub cmd実行_Click() Call 実行準備

Select Case ページ.Value 'ページでケースを選択

Case 1: Call ■色彩

Case 2: Call ■単語リスト Case 3: Call ■検索置換 Case 4: Call ■分析 End Select

cmd実行.Caption = "●実行:" & Int(Timer - 開始時間) & "秒"

End Sub

45 Sub 実行準備()

開始時間 = Timer: cmd実行.Caption = "○実行中": DoEvents

If Len(Selection) < 2 Then

If MsgBox("全範囲を選択しますか?", vbYesNoCancel, "範囲選択") = vbYes Then Selection.WholeStory '全範囲選択

Else

Exit Sub '実行終了 End If

End If

出力文字列$ = "": 出力文字数& = 0 '初期化 End Sub

Sub cmd消去_Click()

On Error GoTo Errores 'エラー処理

If (ページ.Value = 2 And chk新文書) Or (ページ.Value = 3 And chk新文書2) Then '単語リストまたは検索置換であれば…

ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges '新文書をセーブしない で閉じる

End If

If ページ.Value = 4 Then '分析であれば…

objエクセル.ActiveWorkbook.Close SaveChanges:=False 'ブックをセーブしないで 閉じる

End If Exit Sub Errores:

Call フォーム後面: MsgBox "●エラー:" & Error(Err): Call フォーム前面 End Sub

Sub cmd復元_Click()

ActiveDocument.Undo '元に戻す End Sub

46

Sub UserForm_QueryClose(Cancel%, CloseMode%) '×終了ボタン Set obj照合配列 = Nothing

Set obj連想配列 = Nothing Set obj正規表現 = Nothing Set objエクセル = Nothing

End '終了 End Sub

Sub ■色彩() ******************************************************

If chk文字色 Then Selection.Font.Color = BGR$(txt文字色値) If chk下線色 Then Selection.Font.Underline = wdUnderlineWavy

If chk下線色 Then Selection.Font.UnderlineColor = BGR$(txt下線色値)

If chk 蛍 光 色 Then Selection.Range.HighlightColorIndex =

Options.DefaultHighlightColorIndex Selection.Font.Bold = chk太字 End Sub

Sub opt文字色_Click()

HexRGB$ = txt文字色値: Call HLS変換: Call RGB変換 End Sub

Sub opt下線色_Click()

HexRGB$ = txt下線色値: Call HLS変換: Call RGB変換 End Sub

Sub spn色相_Change()

txt色相 = spn色相 * 240 / 12: Call RGB変換: Call 色見本 End Sub

Sub spn明度_Change()

txt明度 = spn明度 * 240 / 12: Call RGB変換: Call 色見本 End Sub

Sub spn彩度_Change()

txt彩度 = spn彩度 * 240 / 12: Call RGB変換: Call 色見本

47 End Sub

Sub spn赤_Change()

txt赤 = Right$("0" & Hex$(Int(spn赤 * 255 / 17)), 2) HexRGB$ = txt赤 & txt緑 & txt青

Call HLS変換: Call 色見本 End Sub

Sub spn緑_Change()

txt緑 = Right$("0" & Hex$(Int(spn緑 * 255 / 17)), 2) HexRGB$ = txt赤 & txt緑 & txt青

Call HLS変換: Call 色見本 End Sub

Sub spn青_Change()

txt青 = Right$("0" & Hex$(Int(spn青 * 255 / 17)), 2) HexRGB$ = txt赤 & txt緑 & txt青

Call HLS変換: Call 色見本 End Sub

Sub cmd純色_Click()

spn明度 = 6: spn彩度 = 12: Call 色見本 End Sub

Sub cmd黒_Click()

spn明度 = 0: spn彩度 = 0: Call 色見本 End Sub

Sub cmd白_Click()

spn明度 = 12: spn彩度 = 0: Call 色見本 End Sub

Sub HLS変換() 'HexRGB$ → spnt色相, spn明度, spn彩度 Dim H%, L%, S%

Call ColorRGBToHLS("&H" & HexRGB$, H%, L%, S%) 'HLS 変換サブルーチン

48

spn色相 = IIf(L% = 0 Or L% = 240 Or S% = 0, 0, H% * 12 / 240) spn明度 = L% * 12 / 240

spn彩度 = S% * 12 / 240 End Sub

Sub RGB変換() 'txt色相, txt明度, txt彩度 → txt赤、txt緑、txt青 If Val(txt彩度) = 0 Then '明度だけでRGBを表示

HexRGB$ = Right$("0" & Hex$(Int(txt明度 * 255 / 240)), 2) HexRGB$ = HexRGB$ & HexRGB$ & HexRGB$

Else

lngRGB& = ColorHLSToRGB(txt色相, txt明度, txt彩度) 'RGB変換関数 HexRGB$ = Right$("00000" & Hex$(lngRGB&), 6)

End If

txt赤 = Mid$(HexRGB$, 1, 2) txt緑 = Mid$(HexRGB$, 3, 2) txt青 = Mid$(HexRGB$, 5, 2) End Sub

Sub cbo蛍光色_Change() Call 色見本

End Sub

Sub 色見本()

If opt文字色 Then txt文字色値 = HexRGB$

If opt下線色 Then txt下線色値 = HexRGB$

txt文字色.ForeColor = BGR$(txt文字色値) txt下線色.BackColor = BGR$(txt下線色値)

txt文字色.BackColor = "&H" & 蛍光色配列$(cbo蛍光色.ListIndex) Options.DefaultHighlightColorIndex = cbo蛍光色.ListIndex

txt文字色.Font.Bold = chk太字 End Sub

49

Function BGR$(W$) 'RGB$から16進数BGR$に変換

BGR$ = "&H" & Right$(W$, 2) & Mid$(W$, 3, 2) & Left$(W$, 2) End Function

50

関連したドキュメント