• 締切済み

VBSで文字を比較して一致するセル値に書き込む方法を教えてください。

プログラミング初心者です。以下のスクリプトのコードを教えて下さい。または、参考サンプルの場所などありましたら教えて下さい。 現在、VBScriptのOpenTextFileを用いて各個人の書類提出"済""未"ログ を採取しております。(添付ファイルのように一個人一テキストファイルで管理)ここまでは、書籍のサンプルコードを引用したので作成できました。 【やりたい事】 ログ情報を取得してきて、エクセル表に提出済みなら"●"を書き込んでいきたいです。 動きとしましては、テキストファイルのログ情報から管理Noと氏名で一致したエクセル表のセル値に書き込んでいく。といったことです。 申し訳ございませんが、お知恵をおかしください。

みんなの回答

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

>VBScript から Excel ファイルを開くところまで もう解決済みかもしれませんが・・・

参考URL:
http://www.upken.jp/wiki/index.php?VBScript%2FExcel
回答No.1

やりたいことだけは書いてありますが、何がわからないのか書いてないので勝手に解釈します。 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 = "●"

btybd090
質問者

お礼

temtecomai2 さん、ご回答頂きまして有難うございました。 お礼の返事が送れましたことお詫びいたします。

btybd090
質問者

補足

temtecomai2さん、詳細なコードの提示有難うございます。 "VBScript から Excel ファイルを開くところまではできているとします" すみません、ここの部分はまだ出来ておりません。各個人のログをテキストファイルに書き出すところまでしかできておりません。 "targetSheet変数"というものを使用してExcelファイルを開くという処理を教えて頂けないでしょうか。  私の質問がいたらなかったばかりにご迷惑をお掛けしますが、宜しくお願いします。

関連するQ&A

専門家に質問してみよう