Created
October 4, 2011 01:07
-
-
Save taka2/1260685 to your computer and use it in GitHub Desktop.
2次元のJScript配列を、2次元のSafeArrayに変換するサンプル(JScript only)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0" encoding="Shift_JIS" ?> | |
| <package> | |
| <job> | |
| <script language="JScript"><![CDATA[ | |
| function convertToSafeArray2d(jsArray2d) { | |
| try { | |
| // Excelを起動する | |
| var excelObj = new ActiveXObject("Excel.Application"); | |
| var workbook = excelObj.workbooks.Add(); | |
| var sheets = workbook.Sheets; | |
| var enumSheet = new Enumerator(sheets); | |
| // 1シート目を取得 | |
| var sheet = enumSheet.item(); | |
| // 各セルに値を設定 | |
| var i,j; | |
| for(i=0; i<jsArray2d.length; i++) { | |
| for(j=0; j<jsArray2d[i].length; j++) { | |
| var value = jsArray2d[i][j]; | |
| sheet.Cells(i+1, j+1).Value = value; | |
| } | |
| } | |
| // SafeArrayを返す | |
| return sheet.Cells(1, 1).CurrentRegion.Value; | |
| } finally { | |
| // Excelを終了する | |
| workbook.Close(false); | |
| excelObj.Quit(); | |
| } | |
| } | |
| // 2次元のJScript配列 | |
| var arr2d = [[1,2,8],[4,7,6]]; | |
| // SafeArrayに変換 | |
| var safeArray2d = convertToSafeArray2d(arr2d); | |
| printVBArray(new VBArray(safeArray2d)); | |
| // デバッグ用:VBArrayを表示 | |
| function printVBArray(vbArray) { | |
| for(var i=1; i<=vbArray.ubound(1); i++) { | |
| for(var j=1; j<=vbArray.ubound(2); j++) { | |
| WScript.Echo("vbArray[" + i + "," + j + "] = " + vbArray.getItem(i, j)); | |
| } | |
| } | |
| } | |
| ]]></script> | |
| </job> | |
| </package> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment