Program Page: Excelのオブジェクト、プロパティ、メソッド

カテゴリー名: [ExcelVBAとOLE 基本概念とセル操作

2016/08/13

関連の解説ページへ戻る

*お知恵拝借: JScriptで分からないこと

 VBScriptでは、下のようにして Excelの A1:C1 の3個のセルに一気に書き込むことができます。

WS.Range("A1:C1").Value = Array("アップル", "オレンジ", "メロン")

 ところが、JScriptで同じようにやると、一つのセルに「アップル,オレンジ,メロン」と書かれてしまい、それが3個できます。

 JScriptにおいて、[……] の配列にしたり、[[……]] にしたり、{……} のオブジェクトにしたりして試しましたがダメでした。

ws.Range("A1:C1").Value = vobj;

と書くことができる vobj を自前で生成する方法を知っていたら教えて下さい。

ヒントでも結構ですので、VOVシリーズ トップページのメール送信フォームからお願いします。

    


《このページの目次》


    

1. JScript

△ vovXL01.js

// Excelのオブジェクト、プロパティ、メソッド
var fso, bookPath;
var ExlApp, wb, ws;
var xlWorkbookNormal = -4143;

fso = WScript.CreateObject("Scripting.FileSystemObject");
bookPath = fso.GetAbsolutePathName("Book1.xls");
if (fso.FileExists(bookPath))  fso.DeleteFile(bookPath);
ExlApp = WScript.CreateObject("Excel.Application");  // Excelの起動
ExlApp.Visible = true;  // Excelを見える状態に
wb = ExlApp.Workbooks.Add();  // Workbookの新規作成
ws = wb.Worksheets(1);
var ary = ["アップル", "オレンジ", "メロン"];
for (var i=1; i<=ary.length; i++)  ws.Cells(1,i).Value = ary[i-1];
ws.Range("B1").Clear;
ws.Range("C1").Select;
wb.SaveAs(bookPath, xlWorkbookNormal);
ExlApp.Quit();

目次に戻る


    

△ vovXL01b.js

// ExcelのSelectメソッドとSelection
var fso, bookPath;
var ExlApp;
var xlWorkbookNormal = -4143;

fso = WScript.CreateObject("Scripting.FileSystemObject");
bookPath = fso.GetAbsolutePathName("Book1.xls");
if (fso.FileExists(bookPath))  fso.DeleteFile(bookPath);
ExlApp = WScript.CreateObject("Excel.Application");  // Excelの起動
ExlApp.Visible = true;  // Excelを見える状態に
ExlApp.Workbooks.Add();  // Workbookの新規作成
ExlApp.ActiveWorkbook.ActiveSheet.Range("B1").Select;
ExlApp.Selection.Value = "test";
ExlApp.ActiveWorkbook.SaveAs(bookPath, xlWorkbookNormal);
ExlApp.Quit();

目次に戻る


    

2. VBScript

△ vovXL01.vbs

' Excelのオブジェクト、プロパティ、メソッド
Option Explicit
Dim FSO, BookPath
Dim EXLapp, WBobj, WSobj
Const xlWorkbookNormal = -4143

Set FSO = CreateObject("Scripting.FileSystemObject")
BookPath = FSO.GetAbsolutePathName("Book1.xls")
If (FSO.FileExists(BookPath) = True) Then FSO.DeleteFile(BookPath)
Set EXLapp = CreateObject("Excel.Application")  ' Excelの起動
EXLapp.Visible = True  ' Excelを見える状態に
Set WBobj = EXLapp.Workbooks.Add()  ' Workbookの新規作成
Set WSobj = WBobj.Worksheets(1)
WSobj.Range("A1:C1").Value = Array("アップル", "オレンジ", "メロン")
WSobj.Range("B1").Clear
WSobj.Range("C1").Select
WBobj.SaveAs BookPath, xlWorkbookNormal
EXLapp.quit

目次に戻る


    

△ vovXL01b.vbs

' ExcelのSelectメソッドとSelection
Option Explicit
Dim FSO, BookPath
Dim EXLapp
Const xlWorkbookNormal = -4143

Set FSO = CreateObject("Scripting.FileSystemObject")
BookPath = FSO.GetAbsolutePathName("Book1.xls")
If (FSO.FileExists(BookPath) = True) Then FSO.DeleteFile(BookPath)
Set EXLapp = CreateObject("Excel.Application")  ' Excelの起動
EXLapp.Visible = True  ' Excelを見える状態に
EXLapp.Workbooks.Add()  ' Workbookの新規作成
EXLapp.ActiveWorkbook.ActiveSheet.Range("B1").Select
EXLapp.Selection.Value = "test"
EXLapp.ActiveWorkbook.SaveAs BookPath, xlWorkbookNormal
EXLapp.quit

〜 以上 〜