VBScriptのExcelのCloseメソッドは、現在のワークブックを閉じるために使用されます。
関数名: Closeメソッド
概要: 現在のワークブックを閉じるためのメソッドです。
構文:
objWorkbook.Close([SaveChanges], [Filename], [RouteWorkbook])
引数:
返り値: なし
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Path\to\Workbook.xlsx")
' ワークブックを編集する操作...
' ワークブックを閉じます
objWorkbook.Close
' Excelを終了します
objExcel.Quit
' オブジェクトの参照を解放します
Set objWorkbook = Nothing
Set objExcel = Nothing
VBScriptのExcelのSaveAsメソッドは、ワークブックを指定した場所に指定した形式で保存するために使用されます。
関数名: エクセルのSaveAsメソッド
概要: ワークブックを指定した場所に指定した形式で保存するためのメソッドです。
構文:
objWorkbook.SaveAs(FilePath, [FileFormat])
返り値: なし
' Excelオブジェクトを作成します
Set objExcel = CreateObject("Excel.Application")
' 新しいワークブックを作成します
Set objWorkbook = objExcel.Workbooks.Add()
' シートを取得します(ここでは1番目のシートを指定)
Set objWorksheet = objWorkbook.Worksheets(1)
' セルに値を設定します
objWorksheet.Cells(1, 1).Value = "Hello"
objWorksheet.Cells(1, 2).Value = "World"
' ファイルを保存します
Dim savePath
savePath = "C:\Path\to\SaveFile.xlsx"
objWorkbook.SaveAs savePath, 51 ' 51はxlsx形式を表します
' ファイルを閉じます
objWorkbook.Close
' Excelを終了します
objExcel.Quit
' オブジェクトの参照を解放します
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
VBScriptのExcelのSaveメソッドは、現在のワークブックを保存するために使用されます。
Open
返り値: なし
使用例
' Excelオブジェクトを作成します
Set objExcel = CreateObject("Excel.Application")
' 新しいワークブックを作成します
Set objWorkbook = objExcel.Workbooks.Add()
' シートを取得します(ここでは1番目のシートを指定)
Set objWorksheet = objWorkbook.Worksheets(1)
' セルに値を設定します
objWorksheet.Cells(1, 1).Value = "Hello"
objWorksheet.Cells(1, 2).Value = "World"
' ファイルを保存します
Dim savePath
savePath = "C:\Path\to\SaveFile.xlsx"
objWorkbook.SaveAs savePath
' ファイルを閉じます
objWorkbook.Close
' Excelを終了します
objExcel.Quit
' オブジェクトの参照を解放します
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Path\to\Workbook.xlsx")
具体的な関数リファレンスページを作成する場合は、以下の情報を含めることができます。
関数名: Open
概要: 指定されたパスのExcelファイルを開く
構文:
Set objWorkbook = objExcel.Workbooks.Open
(FilePath, [UpdateLinks], [ReadOnly], [Format], [Password],
[WriteResPassword], [IgnoreReadOnlyRecommended])
引数:
返り値: 指定されたパスのExcelファイルが正常に開かれた場合、開かれたワークブックオブジェクトが返されます。
' Excelオブジェクトを作成します
Set objExcel = CreateObject("Excel.Application")
' エクセルファイルのパスを指定します
Dim filePath
filePath = "C:\Path\to\Workbook.xlsx"
' ファイルを読み取り専用モードで開きます
Dim readOnlyMode
readOnlyMode = True
' パスワードが設定されている場合はパスワードを指定します
Dim password
password = "password123"
' ファイルを開きます
Set objWorkbook = objExcel.Workbooks.Open(filePath, , readOnlyMode, , password)
' シートを取得します(ここでは1番目のシートを指定)
Set objWorksheet = objWorkbook.Worksheets(1)
' データを読み込むためにセル範囲を指定します
Dim rangeAddress
rangeAddress = "A1:B5"
Set objRange = objWorksheet.Range(rangeAddress)
' セル範囲の値を表示します
For Each cell In objRange
WScript.Echo cell.Value
Next
' ファイルを保存せずに閉じます
objWorkbook.Close False
' Excelを終了します
objExcel.Quit
' オブジェクトの参照を解放します
Set objRange = Nothing
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
いつも書き方をわすれてしまうので出力結果から特定の項目を取得する方法をメモしておく。
この出力結果から「従業員コード」の値をゲットしたい。
outputs('操作名')['body/value'][何行目]?['取得したい項目名'] と書けば取得できる。
outputs('表内に存在する行を一覧表示')['body/value'][0]['従業員コード'] と書けば取得できる。
outputs('表内に存在する行を一覧表示')['body']['value'][0]['従業員コード']のように/で分かれているところは別々のカッコに分けてもOK
これが出力結果全体の表示
従業員コードにたどり着くまでに、
body→value→従業員コード と入れ子になっています。
青枠のような [] が出てきたときは、同じ形式のデータがいくつか続くため、何番目の物を使うかの指定が必要。何番目かを0から指定する。(1からではない。)
今回の場合は、最初のデータなので0番目となるため、['value'][0] と指定します。
で、outputs(~)というのは、~という操作をした時の出力結果ということです。
なので、
outputs('表内に存在する行を一覧表示')['body']['value'][0]['従業員コード']
とかけば、OKです。
['従業員コード']の先がさらに入れ子になっているときも[]が出てきた場合は、番号で指定、[]がなければ、項目名を書いていくを繰り返していけばOKです。
先にかいた、データベース(エクセル)から値を取得して、ウェブに表示するという事を実現するためにはNode.jsをインストールする必要があるとわかったのでインストールしてみることにしました。
Node.jsのダウンロードのページに行き、安定している推奨版をダウンロードする。
最新版はバグがおおいからやめておいた方がよいです。
ダウンロードしたインストーラをクリック
インストール先を変えたければ変更して「Next」を押す。
初期値は「C:\Program Files\nodejs\」。
私は、Dドライブに変更しました。
インストール内容をカスタマイズしたいなら、変更して、「Next」を押す。
今回は変更しませんでした。
ネイティブモジュール作成のためのツールをインストールする場合はチェックを入れて「Next」を押す。
今回はチェックを入れませんでした。
インストールが完了の画面がでるので、「Finish」を押して終わります。
以上で完了です。
Javascriptでデータベース(エクセル)のデータを読み込み、ブラウザに表で表示しようと試みました。
やり方がわからないのですが、ADOを使えないのかなと思って調べると、色々な方が方法を紹介していたので、試していました。
接続して、その内容をFireFoxのブラウザで表示してみようと試したところ、
「ActiveXObject is not defined」
とエラーが表示されました。
htmlファイルに記述した内容は以下の通りです。
document.addEventListener('DOMContentLoaded', () => {
//データベースにアクセスする
function dbConnect(){
var gConnection = new ActiveXObject("ADODB.Connection");
gConnection .Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\tbl.xlsx;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1");
alert("データベースに接続しました。");
}
dbConnect();
/* 以下、略*/ググってみたところ、ActiveXObjectはIEでしか使えないとの事。
それじゃぁ、Edgeでいけるかな?と試したところ同じエラーが表示されました。
ふたたびググった結果、
ActiveXObjectはEdgeでは使えないとのこと。
そうだったのか…。
この方法は無理なのね。
他の方法をさがしてみようっと。
PowerAutomateで受信したメールのメッセージIDを保存しておき、あとでそのメッセージIDのメールに対して返信するという事をやろうとしたら、うまくいきませんでした。
同じメールなのに、メッセージIDが変わってしまいました。
原因はフォルダの移動。フォルダを移動すると、メッセージIDが変わってしまいます。
提出1.xlsxの添付があるメールが「hokoku」にあるときと「sumi」フォルダにあるときはメッセージIDが違っていました。
なので、
①「hokoku」フォルダにある時にメッセージIDを取得し、
②メールを「sumi」フォルダに移し
③ ①のメッセージIDを使って返信すると
エラーになってしまいます。
①のときと②の時のメッセージIDが違うのです。フォルダを移すと、ちがうIDになるなんて不便ですね…。
エクセルファイル(複数)をvbsアイコンにドラッグアンドドロップするとパスワードを設定してファイルを上書き保存する。
・複数のエクセルに設定されるパスワードは同一
・スクリプトを保存するときは、日本語対応の文字コードにする。
' Password Set Program.
Option Explicit
On Error Resume Next
'パスワード
Dim Password
Password = "110" ' 設定したいパスワードの値
'ドラッグアンドドロップで取得したファイルパスを変数に入れる
Dim GetPathArray
Set GetPathArray = WScript.Arguments
Dim NullStr
NullStr = "" ' Null文字列 をセット。
Dim Obj_Excel
Set Obj_Excel = WScript.CreateObject("Excel.Application")
Dim Book_1
'イテレータ
Dim pt
Obj_Excel.Application.DisplayAlerts = False '警告メッセージ等を非表示に設定
Obj_Excel.Visible = False 'エクセルは非表示にする
'ファイルの数分ループする
For Each pt in GetPathArray
'--------------------------------------------------------------
Set Book_1 = Obj_Excel.WorkBooks.Open(pt,,,,NullStr) ' 空の文字列でオープンする。
Book_1.SaveAs pt,,Password ' 書き込み時パスワードを指定して保存する。
Book_1.Close
'--------------------------------------------------------------
Next
Obj_Excel.Visible = True
Obj_Excel.Quit
MsgBox "パスワード設定が完了しました。"
最近気が付いたのですが、ブラウザでpdfのリンクをクリックするとファイルが開かれず、ダウンロードフォルダに保存されてしまうようになっていました。
いちいち、ダウンロードフォルダに移動してファイルを開くのが面倒。また、過去にダウンロードしたファイルが保存されているため、どれが今見たいファイルかわからない…。
クリックしたら、pdf開いてほしい…。
しばらく無視していたけど面倒なので設定を見直すことにしました。
以下、設定方法を紹介します。

最近、pdfよく見るから設定しなおしてよかったー。楽になったよ。
関係ないけど、pdfってportable Document Formatの略なんだね。初めて知りました。