人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

取込データのテストをしています。VBSかjava scriptで下記のスクリプトを
作成していただけないでしょうか。お礼は先着順で300,200,100ポイント差し上げます。

・C:\TEMPにtest_001.xls?test_500.xlsまで連番で500個あります。
test_xxx.xlsのL6のセルとM6のセルにIDと名前を設定してください。
IDと名前は別ファイル(id.csv)に1行ずつID,名前という順番で保存しています。

id.csv
P001,佐藤 一郎
P002,佐藤 二郎
XXXX

test_001.xls
L6=P001
M6=佐藤 一郎

test_002.xls
L6=P002
M6=佐藤 二郎

以上、よろしくお願いします。


●質問者: kuruma_neko
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CSV Java M6 SCRIPT VBS
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● HALSPECIAL
●300ポイント

VBSです

Option Explicit
Const XLS = "C:\TEMP\test_{0}.xls"  '{0}は置換されます
Const IDCSV = "C:\TEMP\id.csv"
Const ForReading = 1 '読み込み

Dim objFileSys, objCsvFile
Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject")

If objFileSys.FileExists(IDCSV) = False Then
 MsgBox "id.csvなし"
 WScript.Quit
End If
Set objCsvFile = objFileSys.OpenTextFile(IDCSV,ForReading)

Dim objExcel
Set objExcel = WScript.CreateObject("Excel.Application")
objExcel.Visible = True


Do Until objCsvFile.AtEndOfStream = True
 Dim line, ary, id, nm, xl
 line = objCsvFile.ReadLine
 ary = Split(line,",")
 id = ary(0)
 nm = ary(1)
  '
 xl = XLS
 xl = Replace(xl,"{0}",Mid(id,2))
 If objFileSys.FileExists(xl) = True Then
 objExcel.Workbooks.Open xl
 objExcel.Range("L6").Value = id
 objExcel.Range("M6").Value = nm
 objExcel.DisplayAlerts = False
 objExcel.Workbooks(1).Close True
 End If
Loop

objExcel.Quit
objCsvFile.Close

Set objExcel = Nothing
Set objCsvFile = Nothing
Set objFileSys = Nothing

MsgBox "おわり"

◎質問者からの返答

エクセルを起動するパスをidから取っていますが、対象のエクセルはtest_001.xls?test_500.xls

までの連番で500個なので、format(cnt,"000")に変更しました。また、formatを使うことにより

VBAからの実行に変えました。その他はやりたい機能を満たしていましたので、十分作業が捗りました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ