【vbs】ファイル、フォルダ関係の関数

ファイル関係のオブジェクトを定義する Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") ファイルを開く Set objFile = objFSO.OpenTextFile("ファイルパス") ファイルの存在するフォルダのパス名を返す folderPath = objFSO.getParentFol…

【php】同ページ$_POST使用時の再送信対策

php

formをPOSTで送信後、ページをリロードするとform再送信の確認メッセージがでる問題。 メッセージを出さないため&再送信を防ぐための方法を考える。 formを送信 ↓ POSTを受け取ったら$_SESSIONに格納。同ページに移動。 ↓ $_SESSIONを使って処理。処理後に破…

VBSの配列

宣言 Dim ary() 要素数は1以上の整数でのみ指定可能。変数などはエラーになる。 〇Dim ary(10) ×Dim ary(num) 動的配列 一度宣言した配列を宣言し直す. ReDim aryString(20) こうすると配列の要素は全て空になる. ReDim Preserve aryString(20) Preserveを付…

fetchに関する覚書

fetchを使って分かったこと。 ・thenメソッド内でグローバル関数に代入してもブロック外からスコープ出来ない。 ・ブロック外のfunctionへの引数にも指定できない。 ・fetchで取得した自体をグローバル関数に代入することは可能。 基本は fetch(filePath) で…

ファイルを開く、開いているファイルを取得する

VBS

●ファイルを開く Option ExplicitDim objExcel, bkSet objExcel = CreateObject("Excel.Application")Set bk = objExcel.Workbooks.Open("ファイルパス") ●すでに開いているファイルを取得する Option ExplicitDim objExcel, bkSet objExcel = GetObject(,"E…

CSVファイルを変換出力する(Worksheetを介さない)

VBA

Sub CSVconvert() '////////////////////////////// 'csvをworksheetを介さず変換する 'VBSで十分できる '////////////////////////////// Dim fso As Object, inf, outf, aLine, field, wk '取り込むファイルをダイアログで選択、キャンセルで中断 FileN = …

【WScript.Arguments】ドラッグ&ドロップしたtxtファイルの中身を配列に格納する

VBS

Dim GetPathSet GetPath = WScript.Arguments'ドラッグ&ドロップされていなければ中断If GetPath.Count = 0 Then MsgBox "ファイルをドラッグ&ドロップしてください。",,"警告" Wscript.QuitElseIf GetPath.Count > 1 Then MsgBox "2つ以上のファイルがド…

CSVを取り込む その2

VBA

Dim FileNDim shTHIS As WorksheetDim tmpDim strBufDim clm'取り込むファイルをダイアログで選択、キャンセルで中断FileN = Application.GetOpenFilename("CSVファイル,*.csv")If FileN = False Then Exit Sub'取り込み先のシートを指定Set shTHIS = ThisWo…

ファイルを指定して開く

VBA

Dim FileNameFileName = Application.GetOpenFilename("CSVファイル,*.csv")Workbooks.Open FileName 実行するとファイル選択のダイアログボックスが表示される。選択し【開く】を押すとファイルのフルパスを文字列として取得する。↑この例ではCSVのみ表示さ…

CSVをExcelに取り込む

VBA

Dim tmpDim strBuf As String, strBuf1 As StringDim i As LongDim LastLEN As LongDim shThis As WorksheetDim CSVpath As String'シートとCSVのパスを指定Set shThis = ThisWorkbook.Worksheets("")CSVpath = ""'取り込み先のシートをクリアWith shThis .C…

別のブックからシートを取り込む

VBA

Dim ws as worksheetDim wb as workbook SN = "シート名"BN = "ブック名"Bpath = "ブックのPath"'マクロ実行ブックに目的のシートがあれば消すFor Each ws In ThisWorkbook.Worksheets If ws.Name = SN Then ws.DeleteNext ws'目的のブックを開いているか判…

VBAでメールを送る

【Excel】VBAでOutlookメールを作成する - 意外となんとかなる日記

【RemoveDuplicates】重複削除する

VBA

・サンプル Range("A1:B" & .Cells(1, 1).End(xlDown).Row).RemoveDuplicates Columns:=Array(1, 2),Header:=xlYes このサンプルはA1からの連続最終行を求め、A1:B最終行の範囲を指定。重複判定Columnsに1列目(A列),2列目(B列)を指定しヘッダー(範囲内の1行…

【AdvancedFilter】テーブルからデータ抽出

VBA

テーブルから条件を指定して抽出する Worksheets("").Range("").AdvancedFilter _'テーブルを指定 Action:=xlFilterCopy, _ CriteriaRange:=Worksheets("").Range(""), _'抽出条件がある範囲を指定 CopyToRange:=Worksheets("").Range(""), _'抽出先を指定 U…

【VBA】便利コード集

VBA

実行中の表示を更新するかしないか (Trueにするのを忘れずに) Application.ScreenUpdating = False 実行中のアラートを無視するかしないか (Trueにするのを忘れずに)※無視した場合Yesで処理されるので注意 Application.DisplayAlerts = False 選択しているセ…

特定のブックを開く(既に開いていたらActivateする)

VBA

Dim WB As WorkbookDim fl As Booleanfl = FalseFor Each WB In Workbooks If WB.Name = "ブック名" Then fl = TrueNext WBIf fl Then Workbooks("ブック名").ActivateElse Workbooks.Open ("ディレクトリ+ブック名")End IfNext

フォルダ内にある全ファイル名取得

VBS

VBSでファイルを取得してMsgを表示する Dim objFileSysDim objFolderDim objFile Set objFileSys = CreateObject("Scripting.FileSystemObject") 'フォルダオブジェクトを取得Set objFolder = objFileSys.GetFolder("ディレクトリ名") 'Folderオブジェクトの…

ログファイル作成 & 追記

VBS

VBSでログファイルを作成する Dim objFSO,objLogSet objFSO = WScript.CreateObject("Scripting.FileSystemObject")Set objLog = objFSO.OpenTextFile("ファイル名",8,True)objLog.WriteLine("任意の文字列")objLog.CloseSet objLog = Nothing Set objFSO = …

【RegExp】文字列比較

VBS

VBSで文字列を比較する Dim objRESet objRE = CreateObject("VBScript.RegExp")objRE.Pattern = "比較したい文字列"If objRE.Test("比較する文字列") Then 一致したときの動作Else 一致しないときの動作End IfSet objRE = Nothing 正規表現 文字列の先頭を指…

アクティブプリンター名を表示させる

VBA

VBAでアクティブのプリンター名(とポート名)を取得する。 Sub ShowCurrentPrinterName()MsgBox "現在使用しているプリンターは、" & _ Application.ActivePrinter _ & " です。", Title:="現在使用しているプリンターの表示"End Sub

【メール自動作成&送信】CDO.Messageによるメール送信

VBScriptでメールを送信する。 Set objMail = CreateObject("CDO.Message") objMail.From = "username@gmail.com" objMail.To = "username@gmail.com" objMail.Subject = "SMTP認証、SSL通信によるメール送信テスト" objMail.TextBody = "CDO.Messageを利用…