2022年06月20日

VBScript MsgBoxで日本語を使うと文字化けが発生する

Garbled_characters.jpg

MsgBoxを作成した際に文字化けが発生することがある。
このような場合は文字コードを「UTF-8」から「ANSI」へ変更する。


1)名前を付けて保存の際「文字コード」をクリック
Save_As_screen.jpg


2)プルダウンリストから「ANSI」を選択する
Select_from_pull-down_list.jpg



【関連記事】
MsgBox関数でメッセージボックスを表示する
MsgBox関数で定数を利用する
タスクスケジューラのメッセージを最前面に表示するスクリプト

2022年04月15日

VBScript 特定のキー押下を検知したら処理を実行するスクリプト(キー入力待ちスクリプト)

Option Explicit


Dim Excel
Dim strFunction

Dim Shift : Shift = &H10
Dim Control : Control = &H11
Dim Alt : Alt = &H12
Dim Esc : Esc = &H1B


Set Excel = CreateObject("Excel.Application")

Do While true
 If CheckKey(Shift) AND CheckKey(Control) = true Then
 '「Shift」+「Control」+「Alt」押下にて処理実行
   If CheckKey(Alt) = true Then
     ' /// ボタン押下時に処理したい内容を記述 ///

 '「Shift」+「Control」+「Esc」押下にて待ち受け処理終了
   ElseIf CheckKey(Esc) = true Then
     Exit Do
   End If
 End If
 WScript.Sleep 100
Loop

MsgBox "キー入力待ちを終了します" ,vbSystemModal + vbExclamation
Excel.Quit


'キー判定
Function CheckKey(Key)
 strFunction = "CALL(""user32.dll"", ""GetKeyState"", ""JJ"", " & key & ")"
 CheckKey = (Excel.ExecuteExcel4Macro(strFunction) And &h8000) <> 0
End Function




※注1
利用するコンピュータにExcelが入っていることが条件

※注2
待ち受け処理終了時(「Shift」+「Control」+「Esc」)には同時にタスクマネージャーも起動する

2022年03月11日

VBScript MsgBox関数で定数を利用する

ボタンの種類やアイコンの表示などは引数Buttonsで指定する


<構文>
MsgBox ≪Prompt [, Buttons] [, Title] [, HelpFile, Context]≫


引数Buttonsでは、次の定数が使用できる。
teisu_list.jpg


メッセージボックスでボタンの種類を変更する

vbOKOnly

<ソース>
  MsgBox "よろしいですか?",vbOKOnly

example_vbOKOnly.jpg


vbOKCancel

<ソース>
  MsgBox "よろしいですか?",vbOKCancel

example_vbOKCancel.jpg


vbAbortRetryIgnore

<ソース>
  MsgBox "よろしいですか?",vbAbortRetryIgnore

example_vbAbortRetryIgnore.jpg


vbYesNoCancel

<ソース>
  MsgBox "よろしいですか?",vbYesNoCancel

example_vbYesNoCancel.jpg


vbYesNo

<ソース>
  MsgBox "よろしいですか?",vbYesNo

example_vbYesNo.jpg


vbRetryCancel

<ソース>
  MsgBox "よろしいですか?",vbRetryCancel

example_vbRetryCancel.jpg



メッセージボックスにアイコンを表示する

アイコンや標準ボタンの設定は「+」を利用し指定する

vbCritical

<ソース>
  MsgBox "よろしいですか?",vbOKCancel + vbCritical + vbDefaultButton2

example_vbCritical.jpg


vbQuestion

<ソース>
  MsgBox "よろしいですか?",vbOKCancel + vbQuestion + vbDefaultButton2

example_vbQuestion.jpg


vbExclamation

<ソース>
  MsgBox "よろしいですか?",vbOKCancel + vbExclamation + vbDefaultButton2

example_vbExclamation.jpg


vbInformation

<ソース>
  MsgBox "よろしいですか?",vbOKCancel + vbInformation + vbDefaultButton2

example_vbInformation.jpg



【関連記事】
MsgBox関数でメッセージボックスを表示する
MsgBoxで日本語を使うと文字化けが発生する
タスクスケジューラのメッセージを最前面に表示するスクリプト

2020年11月02日

VBScript 動作確認用メッセージボックス

変数の値を確認する際などにメッセージボックスを利用するが、たとえ意図しない値が入っていた場合でも、メッセージボックス確認後はそのままプログラムが進んでしまうため(動作を続けてしまうため)時間効率が悪くなる。

そこで、以下のようにメッセージボックスを利用することにより、処理を途中で終了させ、効率よく動作確認を行うことができる。


動作確認用メッセージボックス
Dim ret

ret = MsgBox ("処理終了?",vbYesNo)

If ret = vbYes Then

 WScript.Quit

End If

2020年08月28日

VBScript プログラムの実行時間を計測するスクリプト

処理にどれくらい時間がかかるのか、また、どれくらいスピードアップしたのか把握したい場合に、処理時間を計測する方法を知っておくと便利。


処理時間計測プログラム
Option Explicit


Dim startTime
Dim stopTime
Dim speed

startTime = Timer


 ' /// 処理内容を記述 ///


stopTime = Timer

speed = stopTime - startTime
msgbox "処理速度:" & speed & "秒",vbSystemModal,"system"

2019年11月12日

VBScript MsgBox関数でメッセージボックスを表示する

ユーザに何らかのメッセージを通知するために表示されるメッセージボックス。
メッセージボックスを表示するにはMsgBox関数を利用する。

<構文>
MsgBox ≪"Prompt" [, Buttons] [, Title] [, HelpFile, Context]≫

Promp (必須):ダイアログボックスに表示するメッセージを指定
Button(省略可):ダイアログボックスに表示するボタンの種類やアイコンのスタイルなどを指定
Title(省略可):ダイアログボックスのタイトルバーに表示するタイトルを指定
Helpfile(省略可能):ダイアログボックスの[ヘルプ]ボタンから開くヘルプファイルを指定。引数helpfileを指定する場合は、引数contextも必ず指定する。


<使用例>
 MsgBox "TEST表示"

   example_test.jpg


【文字列を連結する】
文字列の連結には「&」を使う

<使用例>
 MsgBox "TEST表示" & "OK"

   example_connect.jpg



【メッセージを改行する】
MsgBoxのメッセージを改行するには以下のコードを利用する

new line_list.jpg


<使用例>
MsgBox "TEST表示" & vbCr & "OK"

   example_newline.jpg


【タイトルを設定する】
メッセージボックス(MsgBox)に、タイトルを表示することができる。
引数が複数ある場合は、「,」(カンマ)で区切る決まりとなっているため、省略した引数のカンマは残しておく必要がある。

<使用例>
MsgBox "TEST表示" & vbCr & "OK",,"タイトルTEST"

   example_Title.jpg



【関連記事】
MsgBox関数で定数を利用する
MsgBoxで日本語を使うと文字化けが発生する
タスクスケジューラのメッセージを最前面に表示するスクリプト

2019年10月04日

VBScriptの基本的なルール

VBScriptを書き始めるにあたっての基本的なルール。


1.拡張子は「.vbs」
 VBSの実行は保存したファイルをダブルクリックする(もしくは右クリック→開く)

2.コメントは「'(シングルクォーテーション)」を最初につける
 複数行にまたぐ//のようなコメントはVBScriptには用意されていない

3.文字は「”(ダブルクォーテーション)」、日時は「#(シャープ)」で括る

4.文字列結合演算子は2種類ある
 「+」または「&」

5.一行目に「Option Explicit」を記述する
 ソースコードの1行目ににOption Explicitを記述しておけば型のエラーを検出してくれる

6.セミコロンの代わりに改行
 VBScriptでは式の終わりを改行で表す
 ※複数行に式がまたがる場合は、行末に半角スペースと_(アンダースコア)を記述する。

7.ifの条件式には「()括弧」を使わずthenを使う

8.VBScriptで扱われる変数は全てバリアント(Variant)型
 どんな値でも格納できる

9.変数の値を知るには MsgBox などをチェックする行に挿入する

2019年08月02日

VBScript マウスポインタを指定した座標へ自動移動させるスクリプト

Option Explicit

Dim x : x = 1000 'x座標を指定
Dim y : y = 500 'y座標を指定
Dim Excel, Command


Set Excel = WScript.CreateObject("Excel.Application")
Command = "CALL(""user32.dll"", ""SetCursorPos"", ""JJJ"", "& x &", "& y &")"
Excel.ExecuteExcel4Macro(command)



※注1
利用するコンピュータにExcelが入っていることが条件

※注2
Windows10でも動作する

2019年06月21日

VBScript マウスポインタを自動的に移動させクリックするスクリプト

Option Explicit

Dim x, y
Dim Excel

'シェルオブジェクトの作成
Set Excel = WScript.CreateObject("Excel.Application")

'キーコード
'Const VK_SHIFT = &H10

'マウス定数
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_ABSOLUTE = 32768
Const MOUSE_MOVE = &H1
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4


MouseMove 700 , 250  '←ここで移動させたい座標を指定する
MouseClick


'クリック
Sub MouseClick
 Dim dwFlags
 dwFlags = MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP
 Call API_mouse_event(dwFlags, 0, 0, 0, 0)
 WScript.Sleep 100
End Sub

'マウスポインタ移動
Sub MouseMove(x, y)
 Dim pos_x, pos_y, dwFlags
 Const SCREEN_X = 1024
 Const SCREEN_Y = 768

 dwFlags = MOUSEEVENTF_ABSOLUTE + MOUSE_MOVE
 pos_x = Int(x * 65535 / SCREEN_X)
 pos_y = Int(y * 65535 / SCREEN_Y)
 Call API_mouse_event(dwFlags, pos_x, pos_y, 0, 0)
 WScript.Sleep 100
End Sub

'APIを叩く
Sub API_mouse_event(dwFlags, dx, dy, dwData, dwExtraInfo)
 Dim strFunction
 Const API_STRING = "CALL(""user32"",""mouse_event"",""JJJJJJ"", $1, $2, $3, $4, $5)"
 strFunction = Replace(Replace(Replace(Replace(Replace(API_STRING, "$1", dwFlags), "$2", dx), "$3", dy), "$4", dwData), "$5", dwExtraInfo)
 Call Excel.ExecuteExcel4Macro(strFunction)
End Sub


▼人気上昇中!マウスパッド!!

   


※注1
利用するコンピュータにExcelが入っていることが条件

※注2
Windows10ではマウスポインタが移動しない可能性あり

2019年03月28日

VBScript タスクスケジューラのメッセージを最前面に表示するスクリプト

タスクスケジューラのメッセージを最前面に表示するには、まず下記コードをコピーしメモ帳に張り付ける。

 MsgBox "TEST表示" ,vbSystemModal + vbExclamation

source_code.jpg


名前を付けて保存する。その際、拡張子は「.vbs」とする。
save_as.jpg


タスクスケジューラの設定を行う。「操作」画面での設定は「プログラムの開始」を選択。
start_program.jpg


上記で保存した「.vbs」ファイルを選択して完了。
select.jpg




【メッセージボックスのメッセージを変更するには】

msgbox.jpg
メッセージボックスで表示されるメッセージを変更するには、冒頭でコピーした「"TEST表示"」の部分を修正する。



該当ファイルを右クリックし「編集」を押下。(※「開く」ではない)
Edit.jpg


"TEST表示"の部分を表示させたい内容に変更する。※「"」(ダブルクォーテーション)は消さないこと
message_change.jpg


【関連記事】
指定した日時にメッセージを表示する(タスクスケジューラ)
指定した日時にコンピューターをシャットダウンする(タスクスケジューラ)
MsgBox関数でメッセージボックスを表示する
MsgBox関数で定数を利用する
MsgBoxで日本語を使うと文字化けが発生する

その買うを、もっとハッピーに。|ハピタス
\ハピタスの紹介キャンペーンです/
最大2000ポイントが貰えます
⇒登録後に行う「ハピタス検定」の答えはこちら

※ハピタスをご存じないかたは他で検索してみてください

ブログ内を検索
ファン
カテゴリ
よく倒されますが、へこたれながら起き上がるSEの備忘録です

Windows(20)
SQL(8)
JAVA(4)
VBScript(13)
VBA(13)
Other(13)
書籍(1)
記事ランキング
  1. 1. no img 確率の収束に必要な試行回数
  2. 2. no img VBScript マウスポインタを自動的に移動させクリックするスクリプト
  3. 3. no img Windows ディスク使用率100%を改善させる
  4. 4. no img Eclipse ホットコード置換に失敗しました
  5. 5. VBScript タスクスケジューラのメッセージを最前面に表示するスクリプト
広告

クラウド型レンタルサーバー サイト運用しない方には不要です‥

ドメイン名取得サービス 超人気ドメイン「.com」「.net」
国内最安値1円です!!

Amazon.co.jpで購入する
画像をクリックするとAmazonのサイトにジャンプします