HTA 版を以前に作りましたが、今回は、 コモン・ダイアログを使って WSH で作りました。カラーを選んで、カラー コードをクリップボードにコピーします。
 クリップボードの操作で、 AutoItX3(β) というのを使っています。

【実行画面】

 


***** ColorMk2.vbs *****

'////////////////////////////////////////////////////////////////////
'//
'//     カラーメーカー2
'//    (コモン・ダイアログおよび AutoItX3(β) を使用)
'//
'//                                                 2005年1月23日
Option Explicit
Dim objComDlg, objAutoIt
Dim strZero, strColor, strRed, strGreen, strBlue
Dim res1, res2
Dim i

res1 = MsgBox("カラーメーカー2を起動します。", 1, "カラーメーカー2")
If res1 = 2 Then
    WScript.Quit
End If

'// コモン・ダイアログオブジェクトを生成
Set objComDlg = CreateObject("MSComDlg.CommonDialog")
'// AutoItX3 オブジェクトを生成
Set objAutoIt = CreateObject("AutoItX3.Control")

Do
    objComDlg.CancelError = True    '// 「キャンセル」でエラー
    On Error Resume Next            '// エラー処理を有効にする

    '// カラーダイアログを表示
    objComDlg.ShowColor
    
    '// 「キャンセル」が押されたときは終了
    If Err.Number = 32755 Then
        MsgBox "カラーメーカー2を終了しました。",,_
            "カラーメーカー2の終了"
        WScript.Quit
    End If
    On Error GoTo 0                 '// エラー処理を無効
    
    '// 文字列の長さ調整
    strZero = ""
    For i = 1 To (6-Len(Hex(objComDlg.Color)))
        strZero= strZero & "0"
    Next
    strColor = strZero & Hex(objComDlg.Color)
    
    '// 赤、緑、青に並び替え
    strRed   = Mid(strColor, 5, 2)
    strGreen = Mid(strColor, 3, 2)
    strBlue  = Mid(strColor, 1, 2)
    strColor = "#" & strRed & strGreen &strBlue
    
    '// 結果を表示
    res2 = MsgBox(_
        "カラーコード: " & strColor & vbCr & vbCr &_
        "これをクリップボードにコピーしますか?",_
        68, "カラーメーカー2")
    
    If res2 = vbYes Then
        '// カラーコードをクリップボードにコピー
        objAutoIt.ClipPut strColor
    End If

Loop


Tcl/Tk 版 もあります。


戻る