カテゴリー名: [ExcelVBAとOLE 基本概念とセル操作]
*お知恵拝借: JScriptで分からないこと
VBScriptでは、下のようにして Excelの A1:C1 の3個のセルに一気に書き込むことができます。
WS.Range("A1:C1").Value = Array("アップル", "オレンジ", "メロン")
ところが、JScriptで同じようにやると、一つのセルに「アップル,オレンジ,メロン」と書かれてしまい、それが3個できます。
JScriptにおいて、[……]
の配列にしたり、[[……]]
にしたり、{……}
のオブジェクトにしたりして試しましたがダメでした。
ws.Range("A1:C1").Value = vobj;
と書くことができる vobj を自前で生成する方法を知っていたら教えて下さい。
ヒントでも結構ですので、VOVシリーズ トップページのメール送信フォームからお願いします。
// 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();
// 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();
' 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
' 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
〜 以上 〜