EXCEL登録スクリプト
EXCELに登録するシーンというのが意外と多いので
VBScriptでTry,Catch使える方法がないかなぁと。
へっぽこプログラマーなのでエラー処理が多過ぎて、苦痛でした。
まぁスクリプトと割り切ってエラー制御端折るのも手だけどなぁ。
エラー処理は日々是勉強ですな。
VBScriptでTry,Catch使える方法がないかなぁと。
へっぽこプログラマーなのでエラー処理が多過ぎて、苦痛でした。
まぁスクリプトと割り切ってエラー制御端折るのも手だけどなぁ。
エラー処理は日々是勉強ですな。
Function ExcelSheetInput(val_keyNo,val_Clumn,val_Path)
'参照:http://3rd.geocities.jp/kaito_extra/Source/ExcelCtrl.html
Dim argRtn(3) '引数チェック用
Dim objExcel
Dim xlSheet
Dim keyNO '
Dim InputDate '
Dim Clumn '
Dim excelPath '
Dim i 'ループカウンター
Dim LastRow 'EXCEL最終行
Dim matchnum '対象EXCEL行数確保用
Dim KeyCell 'Key保管EXCEL行
Dim CellValue 'Key格納用ワーク
Dim InputArea '更新行
Dim strEmpCol
strEmpCol ="X" 'EXCELの列
Dim objFso 'ファイル存在チェック用
'/* 引数エラーチェック
argRtn(0)= argumentChecker(val_keyNo)
argRtn(1)= argumentChecker(val_Clumn)
argRtn(2)= argumentChecker(val_Path)
If argRtn(0) ="False" Or argRtn(1) ="False" Or argRtn(2)="False" Then
ExcelSheetInput = "False"
Logrtn = OutLogger("[Err],EXCELパスが入力されていません。")
If Logrtn = "False" Then
WScript.Echo LErrMsg
End If
Exit Function
Else
keyNO = val_keyNo
InputDate = Mid(Now(),6,5) & "XX" '処理完了登録用
Clumn = val_Clumn
excelPath = val_Path
End If
'ファイル存在チェック
Set objFso = CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(excelPath) Then
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open(excelPath)
Set xlSheet = objExcel.Worksheets(1)
objExcel.Visible = False
Else
ExcelSheetInput="False"
Logrtn = OutLogger("[Err],EXCELファイルが存在しません。")
If Logrtn = "False" Then
WScript.Echo LErrMsg
End If
Exit Function
End If
LastRow = xlSheet.UsedRange.Rows.Count 'EXCEL最終行取得
For i = 1 To LastRow Step 1
'KeyNoと比較してヒットするものの行数を取得
KeyCell = strEmpCol & i
CellValue = xlSheet.Range(KeyCell).Value
If keyNO = CellValue Then
matchnum = i
Exit For
End If
Next
If keyNO <> CellValue Then
objExcel.DisplayAlerts = False
objExcel.Application.Quit
ExcelSheetInput="False"
Exit Function
End If
'セットする。
InputArea = Clumn & matchnum
xlSheet.Range(InputArea).Value = InputDate
'EXCELを保存して終了
objExcel.DisplayAlerts = False
objExcel.Workbooks(1).Save
objExcel.Application.Quit
ExcelSheetInput ="True"
End Function
コメント