SQLの窓

2020年11月15日


JScript / VBScript : 新しい Excel の Book を作成する

サンプルは、.xlsx で保存しています

イントラネットのWEBページで利用されるテクニックの基本的な部分です。イントラネットの場合は、フォーマットを事前に作成しておくので、Excel ブックの作成を行う事は稀ですが、簡単な運用に使う場合は新規にブックが必要になると思います

※ 複数回実行すると上書きされます

昔から、Excel.Application の扱いはけっこう厄介で、実行する毎に Quit しておくとトラブルを最低限に抑える事ができます。しかし、操作方法のルールとリカバリ方法をマニュアル化しておく事が最も重要になります( トラブル時は、非表示のままメモリに残るので、タスクマネージャからタスクの終了をする必要があります )


Jscript
// ****************************
// 初期処理
// ****************************
var App = new ActiveXObject( "Excel.Application" );
var WshShell = new ActiveXObject("WScript.Shell");

App.DisplayAlerts = false;
//App.Visible = true;

// ****************************
// ブック追加
// ****************************
App.Workbooks.Add();

// ****************************
// 追加したブックを取得
// ****************************
var Book = App.Workbooks( App.Workbooks.Count  );

// ****************************
// 現状、ブックにはシート一つ
// という前提で処理していますが
// 必要であれば、Book.Worksheets.Count
// で現在のシートの数を取得できます
// ****************************
var Worksheet = Book.Worksheets( 1 );
Worksheet.Activate();

// ****************************
// Add では 第二引数に指定した
// オブジェクトのシートの直後に、
// 新しいシートを追加します。
// ****************************
Book.Worksheets.Add(null,Worksheet);

// ****************************
// シート名設定
// ****************************
Book.Sheets(1).Name = "新しい情報";
Book.Sheets(2).Name = "予備情報";

// ****************************
// 参照
// 最後の 1 は、使用するフィルター
// の番号です
// ****************************
var FilePath = App.GetSaveAsFilename(null,"Excel ファイル (*.xlsx), *.xlsx", 1);
if ( FilePath == false ) {
	WshShell.Popup( "Excel ファイルの保存選択がキャンセルされました" );
	App.Quit();
	App = null;
	WScript.Quit();
}

// ****************************
// 保存
// 拡張子を .xls で保存するには
// Call ExcelBook.SaveAs( BookPath, 56 ) とします
// ****************************
try {
    Book.SaveAs( FilePath )
    
} catch (error) {
	WshShell.Popup( "ERROR : " + error.description );
}

// ****************************
// Excel をアプリケーションとして終了
// ****************************
App.Quit();

// ****************************
// Excel を VBScript から開放
// ****************************
App = null;

// ****************************
// ファイルの最後
// ****************************



VBScript
' ****************************
' Excel オブジェクト作成
' ****************************
Set App = CreateObject("Excel.Application")

' ****************************
' 警告を出さないようにする
' ****************************
App.DisplayAlerts = False

' ****************************
' ブック追加
' ****************************
App.Workbooks.Add()

' ****************************
' 追加したブックを取得
' ****************************
Set Book = App.Workbooks( App.Workbooks.Count )

' ****************************
' 現状、ブックにはシート一つ
' という前提で処理していますが
' 必要であれば、Book.Worksheets.Count
' で現在のシートの数を取得できます
' ****************************
Set Worksheet = Book.Worksheets( 1 )
Worksheet.Activate()

' ****************************
' Add では 第二引数に指定した
' オブジェクトのシートの直後に、
' 新しいシートを追加します。
' ****************************
Call Book.Worksheets.Add(,Worksheet)

' ****************************
' シート名設定
' ****************************
Book.Sheets(1).Name = "新しい情報"
Book.Sheets(2).Name = "予備情報"

' ****************************
' 参照
' 最後の 1 は、使用するフィルター
' の番号です
' ****************************
FilePath = App.GetSaveAsFilename(,"Excel ファイル (*.xlsx), *.xlsx", 1)
if FilePath = "False" Then
	MsgBox "Excel ファイルの保存選択がキャンセルされました"
	Wscript.Quit()
End If

' ****************************
' 保存
' 拡張子を .xls で保存するには
' Call ExcelBook.SaveAs( BookPath, 56 ) とします
' ****************************
on error resume next
Book.SaveAs( FilePath )
if Err.Number <> 0 then
	MsgBox( "ERROR : " & Err.Description )
end if
on error goto 0

' ****************************
' Excel をアプリケーションとして終了
' ****************************
App.Quit()

' ****************************
' Excel を VBScript から開放
' ****************************
Set App = Nothing

' ****************************
' オブジェクト変数を初期化
' ( 初期化しないとオブジェクト扱いされる )
' ****************************
App = Empty


MsgBox( "処理が終了しました" )

Microsoft ドキュメント

Application.GetSaveAsFilename メソッド (Excel)

Application.GetOpenFilename メソッド (Excel)

Worksheets.Add メソッド (Excel)

Workbook.SaveAs メソッド (Excel)

可能列挙型 (Excel) / SaveAs メソッド で使用する定数


関連する記事

VBScript : 既存の Excel を PDF に変換する ( Excel 2007以降 )





タグ:VBScript EXCEL
posted by lightbox at 2020-11-15 17:32 | WSH JScript | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり