締切り済みの質問
プログラミング初心者です。以下のスクリプトのコードを教えて下さい。または、参考サンプルの場所などありましたら教えて下さい。
現在、VBScriptのOpenTextFileを用いて各個人の書類提出"済""未"ログ
を採取しております。(添付ファイルのように一個人一テキストファイルで管理)ここまでは、書籍のサンプルコードを引用したので作成できました。
【やりたい事】
ログ情報を取得してきて、エクセル表に提出済みなら"●"を書き込んでいきたいです。
動きとしましては、テキストファイルのログ情報から管理Noと氏名で一致したエクセル表のセル値に書き込んでいく。といったことです。
申し訳ございませんが、お知恵をおかしください。
投稿日時 - 2009-03-03 14:11:24
1人が「このQ&Aが役に立った」と投票しています
回答(2件中 1~2件目)
>VBScript から Excel ファイルを開くところまで
もう解決済みかもしれませんが・・・
参考URL:http://www.upken.jp/wiki/index.php?VBScript%2FExcel
投稿日時 - 2009-03-05 20:16:21
やりたいことだけは書いてありますが、何がわからないのか書いてないので勝手に解釈します。
VBScript から Excel のデータファイルを開くところまではできていて、●を入れる場所を特定する方法がわからないってことですか?
以下、前提がわからないので勝手に解釈。
Excel の A列、A1 から下に向かって、既に全ての出席番号があるとします。
出席番号が空白になっているセルは無いとします。
Excel の 1行目、D1 から右に向かって、既に全ての管理 No. が振ってあるとします。
管理 No. が空白になっているセルは無いとします。
テキストファイルの 1行には複数の要素があるようですが、何で区切ってあるのか不明ですが、TAB で区切ってあるとします。
----
<キーになる要素の取り出し>
出席番号は VBScript で開いているテキストファイルのファイル名から取得できます。
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim studentID
studentID = fso.GetBaseName("C:\aaa\bbb\ccc.txt")
これで studentID に "ccc" という文字列が入ります。
生徒名は VBScrit で読み込んだ行の 4番目の要素で取得できます。
Dim lineString
lineString = テキストファイルからの読み込み
Dim vals
vals = Split(lineString, vbTab)
Dim studentName
studentName = vals(3)
管理番号は VBScript で読み込んだ行の 5番目の要素で取得できます。
読み込んだ 1行分の文字列を Split(文字列, vbTab)
Dim MngNum
MngNum = vals(4)
----
<Excel ワークシートへの書き込み>
先にも言ったとおり VBScript から Excel ファイルを開くところまではできているとします。
対象ワークシートを targetSheet 変数で参照しているとします。
合致する管理番号の列番号を取得して変数 recCol に入れる
Dim lastCol
lastCol = targetSheet.Cells(1,4).End(&HFFFFEFBF).Column
Dim recCol
recCol = targetSheet.Range(targetSheet.Cells(1, 4), targetSheet.Cells(1, lastCol)).Find(MngNum).Column
合致する出席番号の行番号を取得して変数 recRow に入れる
Dim lastRow
lastRow = targetSheet.Cells(3, 1).End(&HFFFFEFE7).Row
Dim recRow
recRow = targetSheet.Range(targetSheet.Cells(3, 1), targetSheet.Cells(lastRow, 1)).Find(studentID).Row
<氏名と●を書き込む>
targetSheet.Cells(recRow, 2).Value = studentName
targetSheet.Cells(recRow, recCol).Value = "●"
投稿日時 - 2009-03-04 14:51:53
補足
temtecomai2さん、詳細なコードの提示有難うございます。
"VBScript から Excel ファイルを開くところまではできているとします" すみません、ここの部分はまだ出来ておりません。各個人のログをテキストファイルに書き出すところまでしかできておりません。
"targetSheet変数"というものを使用してExcelファイルを開くという処理を教えて頂けないでしょうか。
私の質問がいたらなかったばかりにご迷惑をお掛けしますが、宜しくお願いします。
投稿日時 - 2009-03-05 07:23:07
お礼
temtecomai2 さん、ご回答頂きまして有難うございました。
お礼の返事が送れましたことお詫びいたします。
投稿日時 - 2009-03-06 23:34:46
OKWaveのオススメ
おすすめリンク