2012/02/26 23:03 【研究課題】
メッセージボックスというか、Windows Scripting Hostのpopupなんだけど。
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
require 'win32ole' require 'singleton' class Msgbox include Singleton # ボタンの種類 VbOKOnly = 0 #[OK] VbOKCancel = 1 #[OK] [キャンセル] VbAbortRetryIgnore = 2 #[中止] [再試行] [無視] VbYesNoCancel = 3 #[はい] [いいえ] [キャンセル] VbYesNo = 4 #[はい] [いいえ] VbRetryCance = 5 #[再試行] [キャンセル] # アイコン VbCritical = 16 #警告メッセージ アイコン VbQuestion = 32 #問い合わせメッセージ アイコン VbExclamation = 48 #注意メッセージ アイコン VbInformation = 64 #情報メッセージ アイコン # ボタン戻り値 VbOK = 1 #[OK]ボタン VbCancel = 2 #[キャンセル] ボタン。 VbAbort = 3 #[中止] ボタン。 VbRetry = 4 #[再試行] ボタン。 VbIgnore = 5 #[無視] ボタン。 VbYes = 6 #[はい] ボタン。 VbNo = 7 #[いいえ] ボタン。 def initialize @wsh = WIN32OLE.new('WScript.Shell') end def open(strText,intSecondsToWait,strTitle,intType = VbOKOnly + VbInformation ) @wsh.popup(strText,intSecondsToWait,strTitle,intType) end end msgbox = Msgbox.instance msgbox.open("hoge",0,"fuga") #デフォ ret = msgbox.open("hoge",0,"fuga", Msgbox::VbOKCancel + Msgbox::VbCritical ) #OkCancelでやばいアイコン case ret when Msgbox::VbOK puts "ok" when Msgbox::VbCancel puts "cancel" end
1: よ 『クラス内の定義を削除して、 WIN32OLE.const_load('Visual Basic For Applications...』 (2022/02/28 11:46)