2023年5月4日木曜日

VBScript エクセルファイルにパスワードを設定して上書き保存

event_note5月 04, 2023

やりたいこと

エクセルファイル(複数)をvbsアイコンにドラッグアンドドロップするとパスワードを設定してファイルを上書き保存する。

補足

・複数のエクセルに設定されるパスワードは同一 

・スクリプトを保存するときは、日本語対応の文字コードにする。

ソース

' Password Set Program.
Option Explicit
On Error Resume Next

	'パスワード
	Dim Password
	Password = "110" ' 設定したいパスワードの値

	'ドラッグアンドドロップで取得したファイルパスを変数に入れる
	Dim GetPathArray
	Set GetPathArray = WScript.Arguments 
	
	Dim NullStr
	NullStr = "" ' Null文字列 をセット。

	Dim Obj_Excel
	Set Obj_Excel = WScript.CreateObject("Excel.Application")

	Dim Book_1

	'イテレータ
	Dim pt


	Obj_Excel.Application.DisplayAlerts = False '警告メッセージ等を非表示に設定
	Obj_Excel.Visible = False	'エクセルは非表示にする

	'ファイルの数分ループする
	For Each pt in GetPathArray  
		'--------------------------------------------------------------
		Set Book_1 = Obj_Excel.WorkBooks.Open(pt,,,,NullStr) ' 空の文字列でオープンする。
		Book_1.SaveAs pt,,Password ' 書き込み時パスワードを指定して保存する。
		Book_1.Close
		'--------------------------------------------------------------
	Next

	Obj_Excel.Visible = True
	Obj_Excel.Quit
	MsgBox "パスワード設定が完了しました。"