エクセル(Excel)&ワード(Word)質問掲示板

より見やすく使いやすいエクセル掲示板を目指し、新たにエクセルの質問掲示板を開設いたしました。 これに伴い、当サイトでは今後、新規投稿はできなくなります。(閲覧は当面可能です。)
今後は新掲示板をご利用いただきますよう宜しくお願い致します。今後ともよろしくお願い致します。
○新掲示板
エクセル(Excel)解決掲示板

エクセル・ワードの基本操作に関する質問や関数やマクロの使い方などエクセルとワードに関する質問掲示板。
Welcome Guest 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

小規模判定

前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-3-22 9:45
ゲスト    投稿数: 0
'**************************************************************************
'** VBS名 : 判定.vbs
'** 作成日  : YYYY.MM.DD
'** 作成者  : TESTER
'** 処理概要 : 処理
'** 変更日 変更内容 変更者
'** yyyymmdd ここに変更内容記述する。 xxxxxx
'**************************************************************************

'********変数強制宣言********
Option Explicit

'********フラグ変数定義********
Dim OK

'********オブジェクト変数定義********
Dim FSO , LOG , INP_OBJ , INP_DM , F , DATA1 , DATA2 , TODAY_1_BEFORE

'********配列宣言************
Dim INP_FILENAME
INP_FILENAME = Array("A.TXT" , "B.TXT" , "C.TXT" , "D.TXT" , "E.TXT" , _
"F.TXT" , "G.TXT" , "H.TXT" , "I.TXT")

Dim INP_FILE_DATE_ONLY_BEFORE(8)
Dim INP_FILE_TIME_ONLY_BEFORE(8)
Dim INP_FILE_DATE_ONLY(8)
Dim INP_FILE_TIME_ONLY(8)
Dim INP_FILE_SIZE_ONLY(8)
Dim INP_FILENAME_VALUE(1)
Dim FILE_VALUE(1)

'********カウント変数宣言************
Dim i , t , Minimum_Value , Half_Value , Maximum_Value , CNT_UP , CNT_DOWN

'********フォルダ変数宣言************
Dim MAIN_DIR , INP_DIR , LOG_DIR

'********ファイル変数宣言************
Dim LOG_FILE1 , LOG_FILENAME1
Dim LOG_FILE2 , LOG_FILENAME2
Dim LOG_FILE3 , LOG_FILENAME3
Dim LOG_FILE4 , LOG_FILENAME4

'********時間変数宣言********
Dim YYYY , MM1 , DD , HANTEI_TIME

'********レコード長変数宣言************
Dim RECORD_LENGTH1 , RECORD_LENGTH2

'********メッセージ変数宣言********
Dim OK_MESSAGE , NG_MESSAGE

'********その他変数宣言************
Dim LINE ,LINE1 , LINE2 , LINE3 , LINE3_1_BEFORE , HINAGATA1_BEFORE , HINAGATA2_BEFORE , HINAGATA1 , HINAGATA2 , I_DATA1 , I_DATA2

'********初期設定********
MAIN_DIR = "D:\IFFILE"
INP_DIR = MAIN_DIR & "\test"
LOG_DIR = MAIN_DIR & "\LOG"
LOG_FILE1 = "CHECK_LOG.txt"
LOG_FILE2 = "TEST1.txt"
LOG_FILE3 = "TEST2.txt"
LOG_FILE4 = "TODAY_1_BEFORE.txt"
LOG_FILENAME1 = LOG_DIR & "\" & LOG_FILE1
LOG_FILENAME2 = LOG_DIR & "\" & LOG_FILE2
LOG_FILENAME3 = LOG_DIR & "\" & LOG_FILE3
LOG_FILENAME4 = LOG_DIR & "\" & LOG_FILE4
i = 0
t = 0
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME1, 2, True)
Set DATA1 = FSO.OpenTextFile(LOG_FILENAME2,1)
Set DATA2 = FSO.OpenTextFile(LOG_FILENAME3,1)
Set TODAY_1_BEFORE = FSO.OpenTextFile(LOG_FILENAME4,1)
OK_MESSAGE = "正常終了"
NG_MESSAGE = "異常終了"
Minimum_Value = "0"
Maximum_Value = "8"
Half_Value = Maximum_Value / 2
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
RECORD_LENGTH1 = 340
RECORD_LENGTH2 = 500
HANTEI_TIME = "220000"
HINAGATA1_BEFORE = "2010/03/22"
HINAGATA1 = "20100322"
HINAGATA2_BEFORE = "2010/03/22"
HINAGATA2 = "20100322"
I_DATA1="データ1"
I_DATA2="データ2"

'********処理開始時間********
CALL LOG_LINE(LINE,"メイン","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********ファイル存在確認処理********
CALL LOG_LINE(LINE,"ファイル存在確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

For i = Minimum_Value to Maximum_Value
IF FSO.FileExists(INP_DIR & "\" & INP_FILENAME(i)) THEN
LOG.WriteLine(INP_FILENAME(i) & "は存在しています。")
ELSE
LOG.WriteLine(INP_FILENAME(i) & "は存在していません。")
OK = 1
END IF
NEXT

IF OK = 0 THEN
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
ELSE
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

'********ファイル更新日時確認処理********
CALL LOG_LINE(LINE,"ファイル更新日時確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

For i = Minimum_Value to Maximum_Value
Set INP_OBJ = FSO.Getfile(INP_DIR & "\" & INP_FILENAME(i))

INP_FILE_DATE_ONLY_BEFORE(i) = _
Year(INP_OBJ.DateLastModified) & "/" & _
Right("0" & Month(INP_OBJ.DateLastModified), 2) & "/" & _
Right("0" & Day(INP_OBJ.DateLastModified), 2)

INP_FILE_TIME_ONLY_BEFORE(i) = _
Right("0" & Hour(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Minute(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Second(INP_OBJ.DateLastModified), 2)

INP_DM = INP_FILE_DATE_ONLY_BEFORE(i) & " " & INP_FILE_TIME_ONLY_BEFORE(i)
LOG.WriteLine(INP_FILENAME(i) & "の更新日時は " & INP_DM)

INP_FILE_DATE_ONLY(i) = Replace(INP_FILE_DATE_ONLY_BEFORE(i),"/","")
INP_FILE_TIME_ONLY(i) = Replace(INP_FILE_TIME_ONLY_BEFORE(i),":","")

INP_FILE_SIZE_ONLY(i) = INP_OBJ.size
NEXT

LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル更新日時確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********INP_FILENAME(0) INP_FILENAME(3) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'本日出力件数ファイルオープン及び、出力処理
LINE1 = DATA1.ReadLine
LINE2 = DATA2.ReadLine
DATA1.CLOSE
DATA2.CLOSE
LOG.WriteLine("本日の" & I_DATA1 & "は" & LINE1 & "件です。")
LOG.WriteLine("本日の" & I_DATA2 & "は" & LINE2 & "件です。")

'INP_FILENAME(0) INP_FILENAME(3) レングスサイズ判定処理
INP_FILENAME_VALUE(0) = INP_FILE_SIZE_ONLY(0) / RECORD_LENGTH1
INP_FILENAME_VALUE(1) = INP_FILE_SIZE_ONLY(3) / RECORD_LENGTH2

FILE_VALUE(0) = Fix(INP_FILENAME_VALUE(0))

IF FILE_VALUE(0) = INP_FILENAME_VALUE(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

FILE_VALUE(1) = Fix(INP_FILENAME_VALUE(1))

IF FILE_VALUE(1) = INP_FILENAME_VALUE(1) THEN
LOG.WriteLine(INP_FILENAME(3) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(3) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

'INP_FILENAME(0) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(0) AND HANTEI_TIME>INP_FILE_TIME_ONLY(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は正常です。")
IF FILE_VALUE(0)<=LINE1 THEN
CNT_UP = LINE1
CNT_DOWN = FILE_VALUE(0)
ELSE
CNT_UP = FILE_VALUE(0)
CNT_DOWN = LINE1
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲内です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

'INP_FILENAME(3) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(3) AND HANTEI_TIME>INP_FILE_TIME_ONLY(3) THEN
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は正常です。")
IF FILE_VALUE(1)<=LINE2 THEN
CNT_UP = LINE2
CNT_DOWN = FILE_VALUE(1)
ELSE
CNT_UP = FILE_VALUE(1)
CNT_DOWN = LINE2
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲内です。")
LOG.WriteBlankLines(1)
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********INP_FILENAME(2) INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'INP_FILENAME(2) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(2) AND HANTEI_TIME>INP_FILE_TIME_ONLY(2) THEN
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF

'INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理
For t = Half_Value to Half_Value+2
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(t) AND HANTEI_TIME>INP_FILE_TIME_ONLY(t) THEN
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
NEXT

LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********INP_FILENAME(1) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(1) & "が0件の場合の雛形更新日時は" & HINAGATA1_BEFORE & "です。")

'INP_FILENAME(1) 判定処理
IF INP_FILE_SIZE_ONLY(1)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(1) AND HANTEI_TIME>INP_FILE_TIME_ONLY(1) THEN
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(1)=HINAGATA1 THEN
LOG.WriteLine(INP_FILENAME(1) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF

LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********INP_FILENAME(7) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'前営業日出力ファイルオープン及び、出力処理
LINE3_1_BEFORE = TODAY_1_BEFORE.ReadLine
TODAY_1_BEFORE.CLOSE
LINE3=REPLACE(LINE3_1_BEFORE,"/","")
LOG.WriteLine("前営業日日付は" & LINE3_1_BEFORE & "です。")

'INP_FILENAME(7) 判定処理
IF INP_FILE_SIZE_ONLY(7)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(7) THEN
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(7)=LINE3 THEN
LOG.WriteLine(INP_FILENAME(7) & "の件数は無い為、更新日時は前営業日の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の件数は無いですが、更新日時は前営業日の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF

LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********INP_FILENAME(8) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(8) & "が0件の場合の雛形更新日時は" & HINAGATA2_BEFORE & "です。")

'INP_FILENAME(8) 判定処理
IF INP_FILE_SIZE_ONLY(8)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(8) THEN
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(8)=HINAGATA2 THEN
LOG.WriteLine(INP_FILENAME(8) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF

LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********判定結果出力処理(正常)********
CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & OK_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

'********処理終了時間********
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)

Set FSO = Nothing
WSCRIPT.QUIT

'★サブルーチン★-------------------------------------------------------------------------------

SUB LOG_LINE(LINE,SHORIMEI,ACTION)

'********時間変数宣言********
Dim YYYY , MM1 , DD , HH , MM2 , SS , PRIME_DATE , PRIME_TIME

YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
HH = Right("0" & Hour(TIME), 2)
MM2 = Right("0" & Minute(TIME), 2)
SS = Right("0" & Second(TIME), 2)

PRIME_DATE = YYYY & "/" & MM1 & "/" & DD
PRIME_TIME = HH & ":" & MM2 & ":" & SS

LINE = "★★★**************  処理日 = " & PRIME_DATE & " " & SHORIMEI & "処理" & ACTION & "時間= " & PRIME_TIME & "  ***************★★★"

END SUB

SUB NG_END

CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & NG_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
WSCRIPT.QUIT

END SUB

これをマクロ化出来ないだろうか?
投票数:38 平均点:4.47
返信する

このトピックに投稿する

題名
ゲスト名   :
投稿本文

  条件検索へ


スポンサーリンク
スポンサーリンク
エクセル・ワード質問/回答集 - クイズ・問題QUUS! - 無料英語学習 - 投資家・トレーダー掲示版
為替(FX)テクニカル分析入門 - エクセル(EXCEL)学習・入門 - Word(ワード)の使い方/活用・入門
Copy right(c) 2006-2010 エクセル&ワード質問掲示板 all right reserved