vbs

VBSのエラー一覧

vbs

番号 エラーメッセージ 5 プロシージャの呼び出し、または引数が不正です。 6 オーバーフローしました。 7 メモリが不足しています。 9 インデックスが有効範囲にありません。 10 固定サイズの配列、または現在、この配列はサイズを変更できない状態にありま…

VBS(WSH)でエラーをクリアする

vbs

Err.Clearデバッグ用にエラーを作る方法もある Err.Raise 6 ' Generate an "Overflow" error. ネタ元 https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/err-object

VBAやVBSでテンポラリファイル取得

Dim FSO As Object, TempName As String Set FSO = CreateObject("Scripting.FileSystemObject") With FSO TempName = .GetSpecialFolder(2) & "\" & .GetBaseName(.GetTempName) & ".xlsxx" End With Set FSO = Nothing ネタ元 http://officetanaka.net/exc…

VBSでファイルコピー

VBS

Option Explicit Dim objFileSys Dim strFilePathFrom Dim strFilePathTo 'ファイルシステムを扱うオブジェクトを作成 Set objFileSys = CreateObject("Scripting.FileSystemObject") 'コピー元のファイルのパスを指定 strFilePathFrom = "c:\temp\コピー元.…

VBSで作業ディレクトリを指定してプログラムを実行

vbs

Option Explicit Dim wShell Set wShell = CreateObject("WScript.Shell") wShell.CurrentDirectory = "c:\Program Files\example" ' 実行プログラムの指定はダブルクォーテーションでくくる wShell.Run """c:\Program Files\example\program.exe""",1,TRUE …

別の VBScript を実行する方法(非同期)

vbs

Option Explicit WScript.Echo "main.vbsを開始します。" '起動用のオブジェクトを生成 Dim objWsh Set objWsh = WScript.CreateObject("WScript.Shell") 'module.vbsを実行 objWsh.Run "module.vbs" WScript.Echo "main.vbsを終了します。" 同期するなら ob…

VBScriptのExcelインスタンス化 Set objExcel = CreateObject("Excel.Application") がダメ レジストリからサブキー列挙して探してやろう(力技)

Excel.Application.15だったりExcel.Application.16じゃないと通らない環境がある。 複数バージョンインストールしてるとなるっぽい。 こちらはレジストリを循環して探して利用する技 'Excel インスタンス化 Dim existExcel existExcel = False Const HKEY_L…

VBScriptでスクリプトの実行を待つ

set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """******.exe"" 引数",1,1program filesみたいなフォルダにスペース対策で""でくくっとくといいよ ネタ元 https://ameblo.jp/hiiragi-pc/entry-10903900415.html http://www.tech…

VBScriptでExcelアドインのインストール/アンインストール

インストール On Error Resume Next Dim installPath Dim addInName Dim addInFileName Dim objExcel Dim objAddin 'アドイン情報を設定 addInName = "Excel CSV I/O" addInFileName = "ExcelCsvIO.xlam" IF MsgBox(addInName & " アドインをインストールし…

特殊フォルダーのパスを取得するVBScript

vbs

Option Explicit 'ShellSpecialFolderConstants 'http://msdn.microsoft.com/en-us/library/windows/desktop/bb774096.aspx Private Const ssfDESKTOP = 0 Private Const ssfPROGRAMS = 2 Private Const ssfCONTROLS = 3 Private Const ssfPRINTERS = 4 Priv…

VBSからバッチファイルをコール

[vbs][wsh] Set WSHShell = WScript.CreateObject("WScript.Shell") cmd = "D:\a.bat" return = WSHShell.Run(cmd)ネタ元 http://q.hatena.ne.jp/1221137108

FTPにアップロード

[vbs][wsh] strDest = "ftp://<ユーザー名>:<パスワード>@<ftpドメイン>/<アップロード先フォルダ>" With CreateObject("Shell.Application") Set objDest = .NameSpace(strDest) objDest.CopyHere("C:\Users\ユーザー\Desktop\アップロードしたい.txt") WScript.Sleep(50</ftpドメイン>…

FSO WriteLineでエラー(失敗)する場合はunicodeが原因かも。

[wsh][vbs]unicodeからsjisに変換できない文字があると、書き込めないでエラーになるみたい。出力ファイルをunicodeにしていいなら fso.CreateTextFile("c:\sandbox\hoge.txt",true,true)のようにunicode=trueにすればOK。 sjisじゃないと困る場合はvbsファ…

Errオブジェクトを使ってエラー処理

On Error Resume Next しつつ Errオブジェクトを使えば、エラーで分岐が書ける。ちなみにエラーが無ければ Err.Number = 0 となる Option Explicit Dim dblCalculatedNumber, strDivisorNumber Do strDivisorNumber = InputBox("割る数を入力してください") …

ファイル選択ダイアログGetOpenFilenameの初期フォルダを指定するには.DefaultFilePath を指定した後開放して再度CreateObject()する

[wsh][vbs]一度=NothingしてからCreateObjectしないと設定が反映されない Dim xlApp Dim defPath Set xlApp = CreateObject("Excel.Application") defPath = xlApp.DefaultFilePath If FileFilter = "" Then FileFilter = "すべてのファイル,*.*" If FilterI…

Collectionが使えない代わりにDictionaryを使う

[WSH][VBS]VBScriptではCollectionが使えないらしい Dictionary オブジェクトの宣言と代入 Dim hash Set hash = CreateObject("Scripting.Dictionary") hash.Add "a", 1 hash.Add "b", 2ネタ元 http://vbscript.g.hatena.ne.jp/cx20/20100131/1264906231

ファイル選択ダイアログはExcelを使うのがベターという状況

[WSH][VBS]Excelの機能を呼び出すのが一番いいらしい。変なの。ネタ元 http://froghand0104.blogspot.jp/2010/10/blog-post_24.html '1ファイル選択ファイル Dim Excel, xlBaseFilePath Set Excel = CreateObject("Excel.Application") xlBaseFilePath = Exc…

フォルダ選択

[vbs][wsh] '----------------------------- 'デスクトップのパスを取得 '----------------------------- Public Const CNST_STR_DESKTOP = "Desktop" Dim s_DesktopPath Set objWShell = CreateObject("WScript.Shell") s_DesktopPath = objWShell.SpecialF…

Excel経由でWin32APIを使ってファイルをダウンロードするVBScript

[wsh][vbs]URLと保存先フォルダを指定する例ExecuteExcel4Macroを使う '-------------------------------------- '指定されたURLのファイルをダウンロード '-------------------------------------- Sub SubDownLoad(strURL,saveFolder) Dim saveFilePath Di…

NTFS ファイル キャッシュのパフォーマンスの監視

NTFSのファイルキャッシュを監視することができるVBスクリプト。メモ帳とかに貼りつけて、拡張子をVBSにしてから、ダブルクリックで実行。 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strCo…

デスクトップパスの取得

Dim MyWSH As Object Set MyWSH = CreateObject("WScript.Shell") myDeskTopPath = MyWSH.SpecialFolders("Desktop") Set MyWSH = Nothing ネタ元 http://www.nurs.or.jp/~ppoy/access/access/acEt013.html

日付をyyyymmddの書式に変換する

Format()を使う Dim today_yyyymmdd today_yyyymmdd = Format(Date, "yyyymmdd")ネタ元 http://www.geocities.jp/cbc_vbnet/function/date.html

VBS(WSH)でテキストファイルに書いてあるURLを順繰りアクセス

てきとーなサンプルコード Option Explicit Dim objIE 'IEオブジェクトを作成します Set objIE = CreateObject("InternetExplorer.Application") 'ウィンドウの大きさを変更します objIE.Width = 800 objIE.Height = 600 '表示位置を変更します objIE.Left =…

文字列を日付にする

"2009/08/26"とかをdate型にする方法です。 dim startdate startdate = DateValue("2009/08/28")参考 http://www.geocities.jp/cbc_vbnet/function/date.html#datavalue

日付(Date型)を文字列にする

文字列型 (String) に変換するにはCStr()を使います。 dim s_yyyy dim s_mm dim s_dd s_yyyy = CStr(Year(startdate)) s_mm = CStr(Month(startdate)) s_dd = CStr(Day(startdate))参考 http://www.kanaya440.com/contents/script/vbs/function/index_abc.ht…

入力を得るならInputBox()

こんな感じ dim code code = InputBox("","銘柄コードを入力してください","0000") if code = "" then WScript.Quit end if msgbox code参考 http://www.kanaya440.com/contents/script/vbs/function/others/input_box.html http://msdn.microsoft.com/ja-jp…

中断なら WScript.Quit

基本ですがすぐ忘れる

IEを操作するサンプル

指定のURLをIEで表示するサンプルhttp://www.happy2-island.com/vbs/cafe02/capter00704.shtml

VBScript Tips

VBS

コピペで使えるサンプルがいっぱい。http://www.whitire.com/vbs/