VBScriptでExcelを操作する
VBScriptでExcelを操作することができる。
Excelの起動と終了
Excelを起動して、終了するには以下のコードで実現できる。
サンプルを実行するとExcelが起動して、3秒後に終了する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |
新しいブックを開く
起動したExcelで新しいブックを開くには、[Application.Workbooks.Add()]を利用する。
サンプルを実行するとExcelが起動して3秒後に新しいブックが開き、さらに3秒後にExcelが終了する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --3秒待つ WScript.Sleep(3000) ' --ブックの追加 oXlsApp.Application.Workbooks.Add() ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |
既存のブックを開く
起動したExcelで既存のブックを開くには、[Application.Workbooks.Open()]を利用する。
サンプルを実行するとExcelが起動して3秒後に既存のブック(Test.xlsx)が開き、さらに3秒後にExcelが終了する。
※実行前に[C:]ドライブの直下にファイル名[Test.xlsx]のExcelファイルを用意する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --3秒待つ WScript.Sleep(3000) ' --ブックを開く oXlsApp.Application.Workbooks.Open("C:/Test.xlsx") ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |
セルに値を設定
セルに値を設定する方法は、Range指定とCells指定の2通りが存在する。
サンプルを実行するとExcelが起動して3秒後に新しいブックが開き、A1セルに”aaa”、C2セルに”100″が入力され、さらに3秒後にExcelが終了する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --Excelの警告を非表示にする oXlsApp.Application.DisplayAlerts = False ' --3秒待つ WScript.Sleep(3000) ' --ブック追加 oXlsApp.Application.Workbooks.Add() ' --シート選択 Set oSheet = oXlsApp.Worksheets(1) ' --A1のセルに値を設定 oSheet.Range("A1").value = "aaa" ' --行が2、列が3のセルに値を設定 oSheet.Cells(2, 3).value = 100 ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |
セルの値を取得
セルの値を取得する方法は、Range指定とCells指定の2通りが存在する。
サンプルを実行するとExcelが起動して3秒後に新しいブックが開き、A1セル、C2セルの値がメッセージボックスに表示され、さらに3秒後にExcelが終了する。
※実行前に[C:]ドライブの直下にファイル名[Test.xlsx]のExcelファイルを用意して、A1セル、C2セルに値を設定しておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --Excelの警告を非表示にする oXlsApp.Application.DisplayAlerts = False ' --3秒待つ WScript.Sleep(3000) ' --ブックを開く oXlsApp.Application.Workbooks.Open("C:/Test.xlsx") ' --シート選択 Set oSheet = oXlsApp.Worksheets(1) ' --A1のセルに値を設定 MsgBox "A1セル:" & oSheet.Range("A1").value ' --行が2、列が3のセルに値を設定 MsgBox "C2セル:" & oSheet.Cells(2, 3).value ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |
セルの値の検索
[Worksheets.Cells.Find()]を利用することで、値の検索が可能となる。
サンプルを実行するとExcelが起動して3秒後に新しいブックが開き、値(“100”)が入力されているセルの行列がメッセージボックスに表示され、さらに3秒後にExcelが終了する。
※実行前に[C:]ドライブの直下にファイル名[Test.xlsx]のExcelファイルを用意して、C2セルに値(“100”)を設定しておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ' Excel起動 Set oXlsApp = CreateObject("Excel.Application") If oXlsApp Is Nothing Then ' Excel起動失敗 MsgBox "Excel起動失敗" Else ' Excel起動成功 ' --Excel表示(falseにすると非表示にできる) oXlsApp.Application.Visible = true ' --Excelの警告を非表示にする oXlsApp.Application.DisplayAlerts = False ' --3秒待つ WScript.Sleep(3000) ' --ブックを開く oXlsApp.Application.Workbooks.Open("C:/Test.xlsx") ' --シート選択 Set oSheet = oXlsApp.Worksheets(1) ' セル選択 Set oRange = oSheet.Cells.Find("100") If oRange Is Nothing Then MsgBox "検索対象が存在しません。" Else ' セルの位置を表示 MsgBox "行:" & oRange.Row & vbCrlf & "列:" & oRange.Column End If ' --3秒待つ WScript.Sleep(3000) ' --Excel終了 oXlsApp.Quit ' --Excelオブジェクトクリア Set oXlsApp = Nothing End If |