2023年6月11日日曜日

【VBScript】Closeメソッドでエクセルブックを閉じる方法

event_note6月 11, 2023

 VBScriptのExcelのCloseメソッドは、現在のワークブックを閉じるために使用されます。

Close

関数名: Closeメソッド

概要: 現在のワークブックを閉じるためのメソッドです。

構文:

objWorkbook.Close([SaveChanges], [Filename], [RouteWorkbook])

引数:

  1. SaveChanges (省略可能): ワークブックの変更内容を保存するかどうかを指定します。省略すると、ユーザーに保存の確認が求められます。
  2. Filename (省略可能): ファイル名を指定します。省略すると、現在のファイル名が使用されます。
  3. 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】SaveAsでエクセルに別の名前を付けて保存

event_note6月 11, 2023

 VBScriptのExcelのSaveAsメソッドは、ワークブックを指定した場所に指定した形式で保存するために使用されます。

SaveAs

関数名: エクセルのSaveAsメソッド

概要: ワークブックを指定した場所に指定した形式で保存するためのメソッドです。

構文:

objWorkbook.SaveAs(FilePath, [FileFormat])

  1. FilePath (必須): 保存先のファイルのパスを指定します。
  2. FileFormat (省略可能): 保存するファイル形式を指定します。具体的な値については、Excelの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】Saveを使ってエクセルファイルを保存する方法

event_note6月 11, 2023

 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

【VBScript】Open関数でExcelファイルを開く方法

event_note6月 11, 2023
VBScriptにおけるエクセルのOpen関数は、Excelファイルを開くために使用されます。以下にVBScriptでのエクセルのOpen関数の基本的な使用例を示します。
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Path\to\Workbook.xlsx")

具体的な関数リファレンスページを作成する場合は、以下の情報を含めることができます。

Open関数

関数名: Open

概要: 指定されたパスのExcelファイルを開く

構文:

Set objWorkbook = objExcel.Workbooks.Open
(FilePath, [UpdateLinks], [ReadOnly], [Format], [Password],
[WriteResPassword], [IgnoreReadOnlyRecommended])

引数:

  • FilePath: 開くExcelファイルのパスを指定します。
  • UpdateLinks (省略可): リンクされているデータを更新するかどうかを指定します。
  • ReadOnly (省略可): 読み取り専用モードでファイルを開くかどうかを指定しま
  • Format (省略可能):開くファイルのフォーマットを指定します。
  • Password (省略可能):Excelファイルを開くためのパスワードを指定します。
  • IgnoreReadOnlyRecommended (省略可能):ファイルが「読み取り専用を推奨」としてマークされていても、それを無視するかどうかを指定するブール値です。Trueを指定すると、読み取り専用を推奨としてマークされているファイルも編集可能になります。Falseを指定すると、読み取り専用を推奨としてマークされたファイルは読み取り専用モードで開かれます。

 

返り値: 指定されたパスの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


2023年5月20日土曜日

【PowerAutomate】outputs(出力結果)から欲しい値を取得する書き方

event_note5月 20, 2023

 いつも書き方をわすれてしまうので出力結果から特定の項目を取得する方法をメモしておく。

 

やりたいこと 

この出力結果から「従業員コード」の値をゲットしたい。


方法

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です。


 

2023年5月14日日曜日

WindowsでNode.jsをインストールする方法

event_note5月 14, 2023

先にかいた、データベース(エクセル)から値を取得して、ウェブに表示するという事を実現するためにはNode.jsをインストールする必要があるとわかったのでインストールしてみることにしました。

 

インストール方法

Node.jsのダウンロードのページに行き、安定している推奨版をダウンロードする。
最新版はバグがおおいからやめておいた方がよいです。

ダウンロードしたインストーラをクリック

「I accept~」の左のチェックを入れて次へ「Next」をクリック

インストール先を変えたければ変更して「Next」を押す。

初期値は「C:\Program Files\nodejs\」。
私は、Dドライブに変更しました。


インストール内容をカスタマイズしたいなら、変更して、「Next」を押す。

今回は変更しませんでした。

ネイティブモジュール作成のためのツールをインストールする場合はチェックを入れて「Next」を押す。

今回はチェックを入れませんでした。

「Install」をクリック。

インストールが完了の画面がでるので、「Finish」を押して終わります。

以上で完了です。


 

2023年5月13日土曜日

JavascriptでActiveXObjectを使ったADO接続(それ以外も)が使えない

event_note5月 13, 2023

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では使えないとのこと。

そうだったのか…。

この方法は無理なのね。

他の方法をさがしてみようっと。


2023年5月6日土曜日

【PowerAutomate】OutlookメールのメッセージIDは一意だが変わる

event_note5月 06, 2023

 PowerAutomateで受信したメールのメッセージIDを保存しておき、あとでそのメッセージIDのメールに対して返信するという事をやろうとしたら、うまくいきませんでした。

 同じメールなのに、メッセージIDが変わってしまいました。

原因はフォルダの移動。フォルダを移動すると、メッセージIDが変わってしまいます。

 提出1.xlsxの添付があるメールが「hokoku」にあるときと「sumi」フォルダにあるときはメッセージIDが違っていました。

なので、

①「hokoku」フォルダにある時にメッセージIDを取得し、

②メールを「sumi」フォルダに移し

③ ①のメッセージIDを使って返信すると

エラーになってしまいます。 

①のときと②の時のメッセージIDが違うのです。フォルダを移すと、ちがうIDになるなんて不便ですね…。

 



2023年5月4日木曜日

VBScript エクセルファイルにパスワードを設定して上書き保存

event_note5月 04, 2023

やりたいこと

エクセルファイル(複数)を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 "パスワード設定が完了しました。"

2023年1月7日土曜日

【FireFox】pdfをダウンロードせずに開きたい!設定方法を紹介

event_note1月 07, 2023

最近気が付いたのですが、ブラウザでpdfのリンクをクリックするとファイルが開かれず、ダウンロードフォルダに保存されてしまうようになっていました。

 いちいち、ダウンロードフォルダに移動してファイルを開くのが面倒。また、過去にダウンロードしたファイルが保存されているため、どれが今見たいファイルかわからない…。

クリックしたら、pdf開いてほしい…。

 しばらく無視していたけど面倒なので設定を見直すことにしました。

 以下、設定方法を紹介します。

設定方法 

ブラウザの右上から設定画面を開く

Pdfをクリックした場合の動作を「Firefoxで開く」に変更する


以上です。

最近、pdfよく見るから設定しなおしてよかったー。楽になったよ。 

関係ないけど、pdfってportable Document Formatの略なんだね。初めて知りました。