XLSETDATAエクセルセットデータ関数

本ページには広告が含まれています。

Excelのセルに値を代入します。

構文
  1. Boolean = XLSETDATA( Excel, 値, セル位置, Column, Sheet名, 文字色, セル色 )
引数
Excel (Object)必須
Excel(またはOOoのCalc)のCOMオブジェクト
値 (Integer)必須
設定する値
セル位置 (Integer = 現在の選択セル)省略可
A1形式、もしくはR1C1形式の行を指定 (省略された場合は現在の選択セル)
Column (Integer)省略可
R1C1形式時の列
Sheet名 (String = アクティブシート)省略可
指定シートへ設定(指定がなければアクティブシート)
文字色 (Integer)省略可
BGR値にて指定
セル色 (Integer)省略可
BGR値にて指定
戻り値
TRUE
正常
FALSE
処理不能

配列を渡す時にRangeの大きさを指定する必要はありません( [2,2]の配列を渡す時に"A1B2"ではなく、"A1"だけで可 )

BGR値 例) 青:$FF0000、緑:$00FF00、赤:$0000FF、オレンジ:$80FF、黄:$FFFF

自作のXLSETDATA関数

Pro版でしか使えないXLSETDATA関数をFree版でも使えるように自作しました。

UWSC
FUNCTION XLSETDATA(Excel, value, position = EMPTY, column = EMPTY, sheetName =  EMPTY, fontColor = EMPTY, cellsColor = EMPTY)
    DIM flg = TRUE
    TRY
        IF sheetName = EMPTY THEN sheetName = Excel.ActiveSheet.Name
        IFB position = EMPTY THEN
            Excel.ActiveCell.Value = value
            IF fontColor <> EMPTY THEN Excel.ActiveCell.Font.Color = fontColor
            IF cellsColor <> EMPTY THEN Excel.ActiveCell.Interior.Color =  cellsColor
        ELSEIF VAL(position) = position AND VAL(column) = column THEN
            Excel.Worksheets(sheetName).Cells(position, column).Value = value
            IF fontColor <> EMPTY THEN  Excel.Worksheets(sheetName).Cells(position, column).Font.Color = fontColor
            IF cellsColor <> EMPTY THEN  Excel.Worksheets(sheetName).Cells(position, column).Interior.Color = cellsColor
        ELSE
            Excel.Worksheets(sheetName).Range(position).Value = value
            IF fontColor <> EMPTY THEN Excel.ActiveCell.Font.Color = fontColor
            IF cellsColor <> EMPTY THEN Excel.ActiveCell.Interior.Color =  cellsColor
        ENDIF
    EXCEPT
        flg = FALSE
    ENDTRY
    RESULT = flg
FEND

プログラム実行例

気象庁のホームページから一月分の気温を取得しExcelでグラフを作成

UWSC
CONST xlUp = -4162
CONST xlLineMarkers = 65

DIM year = 2020
DIM month = 8

DIM IE = IEBoot()
IE.Navigate("https://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?prec_no=14&block_no=47412&year=" + year + "&month=" + month + "&day=&view=p1")
BusyWait(IE)

DIM array[-1][-1]
DIM element = IE.document.getElementById("tablefix1")
getTableData(element, array)

IE.Quit

DIM Excel = XLOPEN()
DIM SheetName = Excel.ActiveSheet.Name

XLSETDATA(Excel, array, "A1")

DIM row = Excel.Cells(Excel.Rows.Count, 1).End(xlUp).Row
DIM Charts = Excel.Charts.Add

WITH Charts
	.ChartType = xlLineMarkers
	.SeriesCollection.NewSeries
	.HasTitle = TRUE
	.ChartTitle.Text = "札幌 " + year + "年" + month + "月気温"

	WITH .FullSeriesCollection(1)
		.XValues = "=Sheet1!$A$5:$A$35"
		.Name = "=<#DBL>最高気温<#DBL>"
		.Values = "=Sheet1!$H$5:$H$35"
		WITH .Format
			.Fill.ForeColor.RGB = 255
			.Line.ForeColor.RGB = 255
		ENDWITH
	ENDWITH

	WITH .FullSeriesCollection(2)
		.XValues = "=Sheet1!$A$5:$A$35"
		.Name = "=<#DBL>最高気温<#DBL>"
		.Values = "=Sheet1!$I$5:$I$35"
		WITH .Format
			.Fill.ForeColor.RGB = 16711680
			.Line.ForeColor.RGB = 16711680
		ENDWITH
	ENDWITH
ENDWITH
結果
2020年8月気温.png
使用関数

Excelでセルに値を代入

UWSC
DIM Excel = XLOPEN()

FOR row = 1 TO 5
	FOR col = 1 TO 5
		XLSETDATA(Excel, row + ", " + col, row, col)
	NEXT
NEXT

//XLCLOSE(Excel, TRUE)

セルに配列の値を代入

配列の場合、セル位置は必須。

UWSC
DIM Excel = XLOPEN()
DIM arr[2][1] = 12, 45, 78, 2417, 51, 478

XLSETDATA(Excel, arr, "A1")

//XLCLOSE(Excel, TRUE)

指定したセルから値を取得します

UWSC
DIM Excel = XLOPEN()
XLSETDATA(Excel, RANDOM(), "A1")
PRINT XLGETDATA(Excel, "A1")

//XLCLOSE(Excel, TRUE)

楽天銀行定期預金の金利をExcelに保存

UWSC
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://rbweb.rakuten-bank.co.jp/REF/main/fis/BasicTimeDepositInterestRate.html?PageID=BasicTimeDepositInterestRatePresentationLogicBean")
BusyWait(IE)

DIM elements = IE.document.getElementsByTagName("table")
DIM element = elements.Item(0)
DIM arr[-1][-1]

getTableData(element, arr)

IE.Quit

DIM Excel = XLOPEN()
XLSETDATA(Excel, arr, "A1")

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = uniqueFilename(FSO.BuildPath(GET_CUR_DIR, "楽天銀行定期預金金利.xlsx"))
XLCLOSE(Excel, path)
使用関数

関連記事

XLOPEN関数 (スクリプト関数)
XLOPEN関数は、Excelまたは OOoのCalcを起動する関数です。第一引数に読み込むファイル名(新規の場合は省略)、第二引数に起動フラグ、第三引数以降にパラメータ(パスワードや読み込み専用)を指定します。
XLSHEET関数 (スクリプト関数)
PageSetup オブジェクト
Excel のシートの印刷設定を表すオブジェクトです。シートの用紙サイズ、余白、方向、印刷タイトルなど、印刷に関連する設定を管理するのに使用されます。
Application オブジェクト
Excel全体を表すオブジェクトです。Excel全体に対しての操作、設定変更をしたい場合に使います。
Border オブジェクト
上下左右一つひとつの罫線を表します。
Characters オブジェクト
オブジェクトに含まれる文字列の文字を表します。
Charts オブジェクト
指定されたブックまたは作業中のブックにあるすべてのグラフシートのコレクションです。
Comment オブジェクト
セルに関連付けられたコメントを表します。
FullSeriesCollection オブジェクト
グラフのデータ系列を表すコレクション。
LineFormat オブジェクト
線に関する書式設定。