<   2017年 11月 ( 5 )   > この月の画像一覧
[VBScript] フォルダ内のCSVファイルをひとつのExcelファイルにまとめる
どーもボキです。

フォルダ内にあるCSVファイルをひとつのExcelファイルにまとめるスクリプト。
CSVファイルごとにシートを分けるようにしている。

エキサイトブログには.openが記述できなかったので全角で記述した。
全角のOPENを半角へ変えること。

使い方は簡単、CSVファイルを保存したフォルダをVBSファイルにドロップするだけ。
フォルダ名.xlsx(拡張しは、実行PCのExcelバージョンによる)が作成される。

なお、CSVファイル名をそのままシート名にするため、
CSVファイル名が半角 31 文字 or 全角は 15 文字を超えていた場合、エラーとなる。
Set objWS = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")

' 引数なし
If WScript.Arguments.Count = 0 Then WScript.Quit

SetScriptHost("CScript") ' ドロップだとWScriptとなるためCScriptで再起動

For i = 0 To WScript.Arguments.Count -1: Do
s = WScript.Arguments.Item(i)

If objFS.FolderExists(s) Then
ProcFolder(s)
End If
Loop Until 1: Next

r = CreateObject("WScript.Shell").PopUp("処理が終了しました。",3,cTitle,64)
'================================================================================'
Function ProcFolder(DPath)
Dim i,r,s,b_init,objFolder,objExcel,xlBook,xlSheet

dprintf(DPath)
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.DisplayAlerts = False ' 警告OFF
'objExcel.Application.Visible = True ' Excel非表示
objExcel.Workbooks.Add ' ブックの新規作成

' フォルダ内のファイル分ループ
b_init = True
Set objFolder = objFS.GetFolder(DPath)
For Each File In objFolder.Files: Do
If InStr(LCase(File.Path), LCase(".csv")) = 0 Then Exit Do ' .csv以外は処理しない

dprintf(vbTab & File.Name)
Set xlBook = objExcel.Workbooks.Open(File.Path) ' ファイルを開く
Set xlSheet = xlBook.Worksheets(1) ' シートを格納

s = objFS.GetFileName(File.Path) ' ファイル名
xlSheet.Name = Left(s, InStrRev(s,".")-1) ' ファイルタイトルをシート名
r = xlSheet.Move(,objExcel.Workbooks(1).Sheets( objExcel.Workbooks(1).Sheets.Count )) ' 最後に追加

If b_init Then
' 新規作成で生成されるSheet1~3を削除(Excelバージョンによる)
While objExcel.Workbooks(1).Sheets.Count > 1
objExcel.WorkBooks(1).Sheets(1).Delete
WEnd
b_init = False
End If

'objExcel.Workbooks(1).WorkSheets(1).Select ' 先頭シートを最前面へ
Loop Until 1: Next

' 解析結果を保存
objExcel.Workbooks(1).SaveAs(objFolder.Path)
objExcel.Quit

Set objExcel = Nothing ' オブジェクト開放 ※これをしないとExcelプロセスが残る
End Function
' -------------------------------------------------------------------------------
' デバッグ ※ここだけ抜粋してもOK
Dim objDbg
' クラス
Class TDebug
Dim FCScript
' 初期化処理
Private Sub Class_Initialize()
FCScript = InStr(LCase(WSCript.FullName), "cscript") > 0
End Sub

' 終了処理
Private Sub Class_Terminate()
If Not FCScript Then Exit Sub

WScript.StdOut.WriteLine WScript.ScriptFullName & " [END]"
WScript.StdIn.ReadLine
End Sub

' デバッグメッセージ処理
Public Sub dprintf(v)
Dim i,s,ityp
If Not FCScript Then Exit Sub

s = v
ityp = VarType(v)
If ityp = vbBoolean Then
s = CStr(v)
ElseIf VarType(v) >= vbArray Then
s = ""
For i = 0 to UBound(v)
s = s & "dprintf(" &i& ")=" & v(i) & vbCRLF
Next
End If
WScript.Echo s
End Sub
End Class
' 関数
Sub dprintf(v)
If VarType(objDbg) = vbEmpty Then Set objDbg = New TDebug
objDbg.dprintf(v)
End Sub
' -------------------------------------------------------------------------------
' 実行ホストを切り替える
Sub SetScriptHost(HostName)
If InStr(LCase(WSCript.FullName), LCase(HostName)) <> 0 Then Exit Sub

s = HostName & " """ & WScript.ScriptFullName & """"
If WScript.Arguments.Count > 0 Then
For i = 0 To WScript.Arguments.Count -1
s = s &" """ & WScript.Arguments.Item(i) & """"
Next
End If
CreateObject("WScript.Shell").Run s
WScript.Quit
End Sub

[PR]
by yozda | 2017-11-23 14:23 | プログラミング | Trackback | Comments(0)
七瀬川渓流釣り場
どーもボキです。

会社のイベントで七瀬川渓流釣り場に行ってきた。

週末からの冷え込みでかなり寒かったが、
一緒にきた娘も喜んだし、バーベキューは美味いし最高だった。
ここの釣り堀は、手ぶらで釣りが楽しめるだけでなく、
手ぶらで来てもバーベキューができるのでオススメ(要前日予約)

当初は10月に予定されてたイベントだったんだが、
雨で延期となりこの土曜の開催となったのね。

幹事の皆さん、お疲れ様。

a0021757_22345948.jpg

a0021757_22350202.jpg

a0021757_22350541.jpg

a0021757_22350795.jpg

a0021757_22350900.jpg


[PR]
by yozda | 2017-11-19 22:23 | 暮らし | Trackback | Comments(0)
amiiboのドットマリオをダイソーのプチブロックで作る その3
どーもボキです。

友達のお子さん用に作った。
a0021757_15350975.jpg
こんなのを作って遊んでいるらしい。
気に入ってくれると良いけど。
a0021757_22082152.jpeg

[PR]
by yozda | 2017-11-19 15:51 | 物・モノ・もの | Trackback | Comments(2)
JR西条駅前「あおぞう」ラーメン
どーもボキです。

仕事で東広島市西条町に行くことがあったので、
西条駅前にある「あおぞう」で汁なし坦々麺を食べてきた。

山椒のピリ辛が効いた本格的な仕上がり。
辛くて後半はつらかったが。
a0021757_08294985.jpg

この店の名物は、煮干し出汁の効いたあおぞうラーメン。
以前食べた時はお腹の調子が悪く、ゆっくり味わう余裕がなかった。体調の良い時にまた行ってみよう。
a0021757_08295231.jpg


[PR]
by yozda | 2017-11-17 08:28 | 暮らし | Trackback | Comments(0)
amiiboのドットリンクをダイソーのプチブロックで作る その2
どーもボキです。

Breath of the NES(※)版カラーのドットリンクを作った。(※ゼルダファンが製作した任天堂非公式のゲーム)
こういった非公式ゲームには毅然と対応する任天堂、すでに上記サイトでの配布は中止されている。
a0021757_13185283.png
Breath of the wildの世界観をファミコン(NES)風に再現している


a0021757_08023268.jpeg
上は最初に作ったバージョン。ゾーラの服とみらーしーるどしようだが、あまり良いと思えず。BON仕様に作り直すことにした。

薄い茶色ブロックを使いたかったが、クラシックカラー版ドットマリオで使い果たしていたので、
濃い茶色ブロックにて製作。
a0021757_13083582.jpg
ゴロンの服(赤い服)を着たバージョンも良かったが、このBONカラーも良いね。
貴重な青や肌色をふんだんに使う、贅沢仕様になっている。

BONカラー版製作に合わせ、ゴロンの服バージョンでのハイラルの盾アレンジを微妙に修正。
一緒にぐるぐる。

a0021757_13232963.jpg
a0021757_13244194.jpg
a0021757_13252946.jpg
a0021757_13254403.jpg
a0021757_13255970.jpg
a0021757_13261379.jpg
a0021757_13262962.jpg
a0021757_13264134.jpg

[PR]
by yozda | 2017-11-12 13:33 | 物・モノ・もの | Trackback | Comments(0)