No.427
0
回数0
優先度0
発生日2016/11/21
仮完了
完了日
期限2016/12/15
タイトルシート情報出力.vbs
サブタイトルVBScript
内容
'Excelシート情報出力

'D&Dされたファイルを開く

Option Explicit
'On Error Resume Next

'ドラック&ドロップされたファイル名を表示する

'引数を取得
Dim args
Dim arg
Dim strArg
Dim argNum

Set args = WScript.Arguments

'引数の数を確認
argNum = args.Count

'引数が1つもなければ
If argNum = 0 Then

'スクリプトを終了
Wscript.Echo "このツールの上に対象のファイルをドラック&ドロップして下さい。"
WScript.Quit

End If

'変数定義
Dim objFSO 'FileSystemObject
Dim objRE '文字検索用

Dim strToolFolder
Dim strDataFullPath
Dim strDataFolder
Dim strDataFile
Dim strExtName


'csvファイル操作のためのファイルシステムオブジェクトの作成
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

'各ファイルのパスを取得
strToolFolder = objFSO.getParentFolderName(WScript.ScriptFullName)

'引数を確認-------------------------------------------------------------------
'最初の引数の値を変数に格納
strDataFullPath = args(0)
strDataFolder = objFSO.getParentFolderName(args(0))
strDataFile = objFSO.getFileName(args(0))
strExtName = objFSO.GetExtensionName(args(0))

'拡張子が「csv」でない場合
If (strExtName <> "xlsx") and (strExtName <> "XLSX") Then
'スクリプトを終了
MsgBox "対象外のファイルが含まれています。" & vbCrLf & vbCrLf & _
"正しいファイルをドラック&ドロップして下さい。", 48, "ツール"
WScript.Quit
End If

'MsgBox "フォルダパス:" & strDataFolder & vbCrLf & vbCrLf & _
' "ファイル名:" & strDataFile & vbCrLf & vbCrLf


'Excel操作
Dim oXlsApp

' Excel起動
Set oXlsApp = CreateObject("Excel.Application")
If oXlsApp Is Nothing Then
' Excel起動失敗
MsgBox "Excel起動失敗"
Else
' Excel起動成功
' --Excel表示(falseにすると非表示にできる)
oXlsApp.Application.Visible = true
' --3秒待つ
WScript.Sleep(3000)

'対象ファイルを開く
Dim objInputFile
' --ブックを開く
Set objInputFile = oXlsApp.Application.Workbooks.Open(strDataFullPath)


'出力用ファイルを開く
Dim objOutputFile
' --ブックの追加
Set objOutputFile = oXlsApp.Application.Workbooks.Add()


'データを出力用ファイルに書き出す
'シートを追加する
Dim i
For i = 2 To objInputFile.Sheets.Count
objOutputFile.Sheets.Add()
Next


For i = 1 To objInputFile.Sheets.Count
objOutputFile.Sheets(i).Name = objInputFile.Sheets(i).Name
'objOutputFile.Sheets(i).Cells(i, 1) = objInputFile.Sheets(i).Name
Get_SheetFormatCondition objInputFile.Sheets(i),objOutputFile.Sheets(i)
Next


' --3秒待つ
WScript.Sleep(10000)
' --Excel終了


'出力ファイルを保存
'現在日時を取得
Dim strNow
Dim strCDate
Dim strCTime

strNow = Replace(Left(Now(),10), "/", "") & Replace(Replace(Right(Now(),8)," ","0"), ":", "")
'Wscript.Echo strNow
strCDate = Left(strNow,8)
strCTime = Right(strNow,6)

objOutputFile.SaveAs strDataFolder & "シート情報" & strCDate & "_" & strDataFile
oXlsApp.Quit


' --Excelオブジェクトクリア
Set oXlsApp = Nothing
Set objInputFile = Nothing

End If



'条件付き書式取得
Function Get_SheetFormatCondition(ACsheet,SH1)

'Dim ACsheet
'Dim SH1
Dim i
Dim m_FCs 'As FormatCondition
'ACsheet = ActiveSheet.Name
'Set SH1 = Worksheets.Add
Dim tmp(5) 'As String
tmp(0) = "タイプ"
tmp(1) = "条件"
tmp(2) = "範囲"
tmp(3) = "背景色"
tmp(4) = "フォントスタイル指定"
tmp(5) = "フォントの色インデックス"
SH1.Range("A1:F1") = tmp

'////ここから条件付き書式の・・・/////
i = 1
For Each m_FCs In ACsheet.Cells.FormatConditions
i = i 1
'm_FCsにそれぞれの条件情報が順番に代入される

SH1.Cells(i, 1) = "'" & m_FCs.Type
SH1.Cells(i, 2) = "'" & m_FCs.Formula1
SH1.Cells(i, 3) = "'" & m_FCs.AppliesTo.Address
SH1.Cells(i, 4) = "'" & m_FCs.Interior.Color
SH1.Cells(i, 5) = "'" & m_FCs.Font.FontStyle
SH1.Cells(i, 6) = "'" & m_FCs.Font.ColorIndex

Next

End Function
区分
ステータス
中区分個人
小区分DEV
発生元
発生元担当
対応
対応2
連絡先
対応者新実
URL
0
大区分todo
0
登録日2016-11-21 21:45:02
最終アクセス日2016-11-21 21:45:02
更新日2016-12-14 16:19:35