IE11 で Excel のブックにアクセスする / JavaScript を使用して Excel のブックのセルにデータをセットして更新

⭕ まず、信頼するサイトlocalhost( またはイントラネットのサーバ ) を登録します。



⭕ レベルのカスタマイズで『スクリプトを実行しても安全だとマークされていないActiveX コントロール』を『有効』にします。



▼ 以下の .reg ファイルをエクスプローラからダブルクリックしてインポートする事もできます
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]
"1201"=dword:00000000

▼ .reg ファイルをダウンロード
その上で以下のコードを localhost で実行が可能です。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-type" content="text/html; charset=shift_jis">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

// *************************************
// IE 用オブジェクト作成関数
// *************************************
function newObject( className ) {

	var obj;

	try {
		obj = new ActiveXObject( className );
	}
	catch (e) {
		obj = null;
	}

	return obj;

}

// *************************************
// Excel 用オブジェクト 格納変数
// *************************************
var excelApp = null;
var myBook = null;

// *************************************
// Exce ブックを読み込んで更新して終了
// *************************************
function excelTest() {

	// Excel オブジェクト作成
	if ( excelApp == null ) {
		 excelApp = newObject("Excel.Application");
	}

	// Excel ブックの読み込み
	myBook = excelApp.Workbooks.Open("C:\\Users\\lightbox\\Documents\\Book1.xlsx");

	// アクティブなウィンドウを最大化
	excelApp.ActiveWindow.WindowState = 2;
	// 表示時様態にする
	excelApp.Visible = true;

	// jQuery でオブジェクトの一覧を取得して Excel のセルに情報をセットする
	var row = 0;
	$.each( window.navigator, function( key, value ){

		row++;
		// シートのセルに書き込み
		myBook.Sheets("Sheet1").Cells(row, 1) = key;
		myBook.Sheets("Sheet1").Cells(row, 2) = typeof value;
		myBook.Sheets("Sheet1").Cells(row, 3) = value;

	});

	// 保存
	myBook.Save();

	// Excel の終了
	if ( excelApp != null ) {
		excelApp.Quit();
		excelApp = null;
	}

}

</script>
</head>
<body>
<input id="export" type="button" value="Excel のテスト" onclick="excelTest();">
</body>
</html>





localStorage に保存して、次回の表示に使用する

タブやアコーディオンや、限られた視野の範囲で効率良く表示するコンテンツは、最後に表示したものを記憶しておくのが良いと思います。

物事を始めたり終えたりするのに、適当な時機

1 本人が悪いことでないと確信してなされる犯罪

2 《1から転じて》悪いことだとわかっていながら行われた犯罪や行為

◆犯罪というほど重大な行為でない場合にも用いる。2 の意はもともと誤用とされていたが、文化庁が発表した平成14年度「国語に関する世論調査」では、50パーセント以上の人が 1 ではなく 2 の意で用いると回答した。

【徐に】落ち着いて、ゆっくりと行動するさま
<script>
$(function() {
	var target_tab = 0;
	if ( typeof(localStorage["old_active"]) != 'undefined' ) {
		target_tab = localStorage["old_active"];
	}
	$( "#mytabs" ).tabs({
		active: target_tab,
		activate: function( event, ui ) {
			localStorage["old_active"] = $( this ).tabs( "option", "active" );
		}
	});
});
</script>

<div id="mytabs">

	<ul>
		<li><a href="#tabs-1">潮時</a></li>
		<li><a href="#tabs-2">確信犯</a></li>
		<li><a href="#tabs-3">おもむろに</a></li>
	</ul>
	<div id="tabs-1">
物事を始めたり終えたりするのに、適当な時機
	</div>
	<div id="tabs-2">
<p>1 本人が悪いことでないと確信してなされる犯罪</p>
<p>2 《1から転じて》悪いことだとわかっていながら行われた犯罪や行為</p>
<p>◆犯罪というほど重大な行為でない場合にも用いる。2 の意はもともと誤用とされていたが、文化庁が発表した平成14年度「国語に関する世論調査」では、50パーセント以上の人が 1 ではなく 2 の意で用いると回答した。</p>
	</div>
	<div id="tabs-3">
【徐に】落ち着いて、ゆっくりと行動するさま
	</div>
</div>

jQuery 部分は全て Google のホスティングを使用しています。