« モンスターハンターポータブル2ndG | Main | Office2007 1万円未満でアップグレード »

Mar 28, 2008

ExcelとbatでDisk容量チェック

ExcelのVBAとDOSコマンド"dir"と"find"を駆使して、Windows Serverの
Disk空き容量を確認及び記録するシステムを作りました。

--ファイルPath
D:\disk_check.xls    このエクセルファイルから実行します。
D:\disk_check.bat    各サーバーの空き容量をdisk.txtへ書き出し
D:\disk.txt        出力ファイル

disk_check.bat
-----
@echo off

set USER-NAME=HogeUser
set PASSWD=hogehoge
set DRIVE=z:
set OUTFILE="D:\disk.txt"

set SERVER1=\\hoge_server01\group
set SERVER2=\\hoge_server02\group
set SERVER3=\\hoge_server03\group

if exist %DRIVE% net use /delete %DRIVE%

net use %DRIVE% %SERVER1% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" > %OUTFILE%
net use /delete %DRIVE%

net use %DRIVE% %SERVER2% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%

net use %DRIVE% %SERVER3% %PASSWD% /user:%USER%
dir %DRIVE% | find "バイトの空き領域" >> %OUTFILE%
net use /delete %DRIVE%

echo. >> %OUTFILE%
time /t >> %OUTFILE%
date /t >> %OUTFILE%

exit
-----


disk_check.xls
-------------------------------
Private Sub CommandButton1_Click()

   Dim myID As Double
   myID = Shell("D:\disk_check.bat", vbNormalFocus)

End Sub
-------------------------------
Private Sub CommandButton2_Click()

    Worksheets("calc").Activate

    Workbooks.OpenText Filename:="D:\disk.txt", Origin:=932, StartRow:=1, _
        DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(16, 1) _
        , Array(33, 1), Array(49, 1)), TrailingMinusNumbers:=True
    Windows("disk.txt").Activate
    Worksheets("disk").Range("D1:D4").Select
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B4").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    Worksheets("disk").Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B2").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    Worksheets("disk").Range("A7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("disk_check.xls").Activate
    Range("B1").Select
    ActiveSheet.Paste
    Windows("disk.txt").Activate
    ActiveWindow.Close

    Windows("disk_check.xls").Activate
    Worksheets("Record").Activate

    With Worksheets("Record")
        .Range("A65536").End(xlUp).Offset(1, 0).Value = Worksheets("calc").Range("B1")
        .Range("A65536").End(xlUp).Offset(0, 1).Value = Worksheets("calc").Range("B2")
        .Range("A65536").End(xlUp).Offset(0, 2).Value = Worksheets("calc").Range("E4")
        .Range("A65536").End(xlUp).Offset(0, 4).Value = Worksheets("calc").Range("E5")
        .Range("A65536").End(xlUp).Offset(0, 6).Value = Worksheets("calc").Range("E6")
        .Range("A65536").End(xlUp).Offset(0, 8).Value = Worksheets("calc").Range("E7")
    End With

    Worksheets("calc").Activate

End Sub
-------------------------------


  ブログランキング

|

« モンスターハンターポータブル2ndG | Main | Office2007 1万円未満でアップグレード »

管理ツール」カテゴリの記事

Script」カテゴリの記事

VBA」カテゴリの記事

Excel」カテゴリの記事

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference ExcelとbatでDisk容量チェック:

« モンスターハンターポータブル2ndG | Main | Office2007 1万円未満でアップグレード »