1. ホーム
  2. スクリプト・コラム
  3. 腹筋

ExcelワークシートのVBSトラバーサルのコード

2022-01-07 19:29:21

コアコード

'******************************************
'Drag and drop the file to get the file path
'******************************************
If wscript.Arguments.count=0 then 
		msgbox "Drag and drop file to this icon",0,"prompt"
End if 
 
 
for a=0 to wscript.Arguments.count-1
 
	strPath=wscript.Arguments(a)	
	
next
'******************************************
'Define Excle object, workbook object, worksheet object
'******************************************
dim oExcel,oWb,oSheet
 
set ws=WScript.createobject("wscript.shell")
Set oExcel=CreateObject("Excel.Application")
'Open the specified workbook
Set oWb=oExcel.Workbooks.Open(strPath)
'Show the open Excel workbook
oExcel.visible=true
'******************************************
'Iterate through all worksheets of the workbook
'******************************************
for j= 1 to oWb.sheets.count
	set oSheet=oWb.Sheets(j)
	'Select and activate the worksheet
	oSheet.Activate
	Range("A1")="Success". oSheet.Range("A1")="Success"
 
next

 Excelは、すべてのワークブックのすべてのワークシートを繰り返し、マクロを実行する

Sub test()
n = Worksheets.
For i = 1 To n
Worksheets(i).Activate
Macro1
Next
End Sub

 Macro1 はマクロの名前です

 VBSを使用してEXCELをトラバースする

Dim xlApp,xlSheet,xlWorkBookDim iRowCount,iLoop,jLoop,jColumnCount,numAdd
Set xlApp=CreateObject("Excel.Application")
xlApp.Visible=True
Set xlWorkBook=xlApp.Workbooks.Open("C:\data.xls")
Set xlSheet=xlWorkBook.Sheets("Sheet1")
iRowCount=xlSheet.UsedRange.Rows.
jColumnCount=xlSheet.UsedRange.Columns.
For iLoop=1 To iRowCount
 For jLoop=1 To jColumnCount
 MsgBox(xlSheet.cells(iLoop,jLoop).value)
 Next
Next

xlWorkBook.Save
xlWorkBook.Close
xlApp.Quit

VBScript Writing 自動的にExcelファイルの内容を配列に書き出し、出力のプロンプトを出す

任意のディレクトリに解凍し、VBSファイルをクリックして実行すると、プログラムが自動的にファイルのあるディレクトリのExcelファイルを配列に読み込み、プロンプトボックスから一つずつ出力し、プロンプトボックスは1秒後に自動的に閉じられます。

Dim oExcel,oWb,oSheet 
Set oExcel= CreateObject("Excel.Application") 
Set oWb = oExcel.Workbooks.Open(dir&"\DataReport.xls") 
Set oSheet = oWb.Sheets("HistoryData")      

Dim i
Dim a(150)

For i = 5 To 145 '145-5+1 = 141 
a(i-5) = oSheet.Range("B"&i).Value
print "data=",a(i-5)
next

Set oSheet = Nothing 

oExcel.Workbooks.Close


oExcel.Quit 'Close excel.exe'


Function Dir()

Set WshShell = CreateObject("Wscript.Shell")

Dir = WshShell.CurrentDirectory
	
End Function

Function print (prompt,title)
Set WshShell = CreateObject("Wscript.Shell")
Popup prompt &title,1,""
End Function

学習しやすいようにコードがパッケージ化され、ダウンロードできるようになっています  ダウンロードアドレス