Last active
March 18, 2018 15:52
-
-
Save sensq/49c2edb87c6346229fb9cc62deb90ea2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Function EXCEL-Get-Book([String]$book_name){ | |
<# | |
.SYNOPSIS | |
既に開かれているExcelブックからブックオブジェクトを選択して出力する関数 | |
#> | |
Function Get-Book($book_name){ | |
# Excelオブジェクトを取得 | |
try{ | |
$ex = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application") | |
}catch{ | |
throw "Excelが起動していません" | |
} | |
# 引数が指定されていた場合は指定された名前のブックを返す | |
if($book_name){ | |
foreach ($bk in $ex.WorkBooks){ | |
if ($bk.Name -eq $book_name){ | |
return $bk | |
} | |
} | |
} | |
else{ | |
# 開いているブックの名前をすべて取得 | |
$book_list = @() | |
$ex.WorkBooks | %{ | |
$book_list += $_.Name | |
} | |
# 一つしか開いていなかったら自動的にそのブックを返す | |
if($book_list.length -eq 1){ | |
return $ex.WorkBooks | |
} | |
# 二つ以上開いていた場合はGridViewで選択された名前のブックを返す | |
$ret_bk = $book_list | Out-GridView -PassThru -Title "開くブックを選択して下さい" | |
foreach ($bk in $ex.WorkBooks){ | |
if ($bk.Name -eq $ret_bk){ | |
return $bk | |
} | |
} | |
} | |
} | |
# 指定されたブックを開く | |
$global:EXCEL_BOOK = (Get-Book $book_name) | |
if($global:EXCEL_BOOK -eq $null){ | |
throw "指定された名前のブックが開かれていません" | |
} | |
Write-Host ('Get $global:EXCEL_BOOK = '+ $global:EXCEL_BOOK.Name) | |
$global:EXCEL_BOOK | |
} | |
Function EXCEL-Get-BookList(){ | |
<# | |
.SYNOPSIS | |
既に開かれているExcelブックのブック名をすべて出力する関数 | |
#> | |
# Excelオブジェクトを取得 | |
try{ | |
$ex = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application") | |
}catch{ | |
throw "Excelが起動していません" | |
} | |
# 開いているブックの名前をすべて取得 | |
$book_list = @() | |
$ex.WorkBooks | %{ | |
$book_list += $_.Name | |
} | |
$book_list | |
} | |
Function EXCEL-Get-BookALL(){ | |
<# | |
.SYNOPSIS | |
既に開かれているExcelブックからすべてのブックオブジェクトを出力する関数 | |
#> | |
EXCEL-Get-BookList | %{ | |
EXCEL-Get-Book $_ | |
} | |
} | |
#Function EXCEL-Foo-Book([__ComObject]$book){ | |
#<# | |
# .SYNOPSIS | |
# ブック操作関連の関数のテンプレート | |
##> | |
# if(!$book){$book = $global:EXCEL_BOOK} | |
# if(!$book){ | |
# throw "対象ワークブックオブジェクトを指定して下さい" | |
# } | |
#} | |
#Function EXCEL-Foo-Sheet([__ComObject]$sheet){ | |
#<# | |
# .SYNOPSIS | |
# シート操作関連の関数のテンプレート | |
##> | |
# if(!$sheet){ | |
# throw "対象シートオブジェクトを指定して下さい" | |
# } | |
#} | |
Function EXCEL-Check-ColorIndex([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
確認用にColorIndexの色でA列を塗り潰す関数 | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
Function Convert-RGB([Int]$color){ | |
$rgb = @(0,0,0) | |
$rgb[0] = ($color % 256) | |
$rgb[1] = ([Math]::Floor($color / 256) % 256) | |
$rgb[2] = ([Math]::Floor($color / 256 / 256)) | |
$ret = ("RGB(" + $rgb[0].ToString() + "," + $rgb[1].ToString() + "," + $rgb[2].ToString() + ")") | |
return $ret | |
} | |
#1..100 | %{ | |
for($i=1; $i -lt 100;$i++){ | |
try{ | |
$sheet.Cells($i, 1).Interior.ColorIndex = ($i-1) | |
$rgb = (Convert-RGB $sheet.Cells($i, 1).Interior.Color) | |
$sheet.Cells($i, 1).Value2 = (($i-1).ToString() + " " + $rgb) | |
}catch{ | |
break | |
} | |
} | |
} | |
Function EXCEL-Get-ActiveSheet([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
アクティブシートを返す関数 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.ActiveSheet | |
} | |
Function EXCEL-Get-ActiveCells([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
指定したシートの選択中のセルを返す関数 | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$sheet.Activate() | |
$sheet.Parent.Parent.Selection | |
} | |
Function EXCEL-Get-ActiveCellsAddress([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
指定したシートの選択中のセルのアドレスを返す関数 | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$current_sheet = $sheet.Parent.ActiveSheet | |
$sheet.Activate() | |
$sheet.Parent.Parent.Selection.Address() | |
$current_sheet.Activate() | |
} | |
Function EXCEL-Show-BookInfo([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
ブック情報を色々と表示する | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$obj = [PSCustomObject]@{ | |
Author = $book.Author | |
FullName = $book.FullName | |
Path = $book.Path | |
Name = $book.Name | |
} | |
$obj | fl * | |
} | |
Function EXCEL-Get-SheetsName([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
全シート名を出力する | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.WorkSheets | %{ | |
$_.Name | |
} | |
} | |
Function EXCEL-Add-Sheet([__ComObject]$book, [String]$sheet_name){ | |
<# | |
.SYNOPSIS | |
ブックに指定された名前のシートを追加する | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
if(!$sheet_name){ | |
$book.WorkSheets.Add() | Out-Null | |
} | |
else{ | |
# 全シート名を取得 | |
$sheets = @() | |
$book.WorkSheets | %{ | |
$sheets += $_.Name | |
} | |
# 指定された名前のシートが無かったらシートを追加 | |
if([Array]::IndexOf($sheets, $sheet_name) -eq -1){ | |
$book.WorkSheets.Add() | Out-Null | |
$book.ActiveSheet.Name = $sheet_name | |
} | |
# 指定された名前のシートがあったらエラー終了 | |
else{ | |
throw "同名のシートが存在します" | |
} | |
} | |
return ($book.ActiveSheet | fl Index,Name) | |
} | |
Function EXCEL-Delete-Sheet([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
ブックからシートを削除する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
# 確認ダイアログが出ないようにする | |
$book = $sheet.Parent | |
$book.Parent.DisplayAlerts = $false | |
Write-Host ("Delete Sheet: " + $sheet.Name) | |
$sheet.Delete() | |
# 確認ダイアログが出るように戻す | |
$book.Parent.DisplayAlerts = $true | |
} | |
Function EXCEL-Show-SheetInfo([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートの様々な情報を出力する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$obj = [PSCustomObject]@{ | |
Index = $sheet.Index | |
Sheetname = $sheet.Name | |
Visible = $sheet.Visible | |
AutoFilterEnable = $sheet.AutoFilterMode | |
} | |
$obj | fl * | |
} | |
Function EXCEL-Show-SheetInfoALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
EXCEL-Show-SheetInfoの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$obj_ary = @() | |
$book.WorkSheets | %{ | |
$obj_ary += EXCEL-Show-SheetInfo $_ | |
} | |
$obj_ary | fl * | |
} | |
Function EXCEL-Set-AutoFilter([__ComObject]$sheet, [String]$range, [Int]$ref_no, [String[]]$criteria){ | |
<# | |
.SYNOPSIS | |
シートにフィルタを設定する | |
range: フィルタをかける表の範囲 | |
ref_no: フィルタ条件を指定する列番号(表開始列を1とする) | |
criteria: フィルタをかける文字(配列で指定) | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if(!$range){ | |
throw "フィルタをかける範囲を指定して下さい(例:C10:O200)" | |
} | |
if(!$ref_no){ | |
throw "フィルタをかける列を指定して下さい(例:13)" | |
} | |
if(!$criteria){ | |
throw "フィルタをかける文字列配列を指定して下さい(例:@('○', '-')" | |
} | |
Write-Output $sheet.Name | |
$sheet.Range($range).AutoFilter($ref_no, $criteria, 7) | Out-Null | |
} | |
Function EXCEL-Set-AutoFilterALL([__ComObject]$book, [String]$range, [Int]$ref_no, [String[]]$criteria){ | |
<# | |
.SYNOPSIS | |
EXCEL-Set-AutoFilterの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
if(!$range){ | |
throw "フィルタをかける範囲を指定して下さい(例:C10:O200)" | |
} | |
if(!$ref_no){ | |
throw "フィルタをかける列を指定して下さい(例:13)" | |
} | |
if(!$criteria){ | |
throw "フィルタをかける文字列配列を指定して下さい(例:@('○', '-')" | |
} | |
$book.WorkSheets | %{ | |
EXCEL-Set-AutoFilter $_ $range $ref_no $criteria | |
} | |
} | |
Function EXCEL-Clear-AutoFilter([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートのフィルタを解除する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if($sheet.AutoFilterMode){ | |
Write-Output $sheet.Name | |
$sheet.Range("A1").AutoFilter() | Out-Null | |
} | |
} | |
Function EXCEL-Clear-AutoFilterALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
EXCEL-Clear-AutoFilterの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.WorkSheets | %{ | |
if($_.AutoFilterMode){ | |
EXCEL-Clear-AutoFilter $_ | |
} | |
} | |
} | |
Function EXCEL-Set-Visible([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートを表示する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if($sheet.Visible -eq 0){ | |
Write-Output $sheet.Name | |
$sheet.Visible = -1 | |
} | |
} | |
Function EXCEL-Set-VisibleALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
EXCEL-Set-Visibleの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.WorkSheets | %{ | |
EXCEL-Set-Visible $_ | |
} | |
} | |
Function EXCEL-UnSet-Visible([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートを非表示にする | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if($sheet.Visible -eq -1){ | |
Write-Output $sheet.Name | |
$sheet.Visible = 0 | |
} | |
} | |
Function EXCEL-UnSet-VisibleALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
EXCEL-UnSet-Visibleの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$current_sheet = $book.ActiveSheet | |
$book.WorkSheets | %{ | |
if($_.Name -ne $current_sheet.Name){ | |
EXCEL-UnSet-Visible $_ | |
} | |
} | |
} | |
Function EXCEL-Set-A1([__ComObject]$sheet, [String]$cell){ | |
<# | |
.SYNOPSIS | |
シートをA1選択状態にする | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$set_row = 1 | |
$set_col = 1 | |
if($cell){ | |
$set_row = $sheet.Range($cell).Row | |
$set_col = $sheet.Range($cell).Column | |
} | |
Write-Output $sheet.Name | |
$visible = $sheet.Visible | |
if($visible -eq 0){ | |
$sheet.Visible = -1 | |
} | |
$sheet.Activate() | |
$sheet.Cells.Item($set_row, $set_col).Select() | Out-Null | |
if($visible -eq 0){ | |
$sheet.Visible = $visible | |
} | |
} | |
Function EXCEL-Set-A1ALL([__ComObject]$book, [String]$cell){ | |
<# | |
.SYNOPSIS | |
EXCEL-Set-A1の全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$current_sheet = $book.ActiveSheet | |
$book.WorkSheets | %{ | |
EXCEL-Set-A1 $_ $cell | |
} | |
$current_sheet.Activate() | |
} | |
Function EXCEL-Set-Zoom([__ComObject]$sheet, [Int]$zoom){ | |
<# | |
.SYNOPSIS | |
シートの拡大率を設定する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if(!$zoom){$zoom = 100} | |
Write-Output $sheet.Name | |
$visible = $sheet.Visible | |
if($visible -eq 0){ | |
$sheet.Visible = -1 | |
} | |
$sheet.Activate() | |
$sheet.Parent.Parent.ActiveWindow.Zoom = $zoom | |
if($visible -eq 0){ | |
$sheet.Visible = $visible | |
} | |
} | |
Function EXCEL-Set-ZoomALL([__ComObject]$book, [Int]$zoom){ | |
<# | |
.SYNOPSIS | |
EXCEL-Set-Zoomの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
if(!$zoom){$zoom = 100} | |
$current_sheet = $book.ActiveSheet | |
$book.WorkSheets | %{ | |
EXCEL-Set-Zoom $_ $zoom | |
} | |
$current_sheet.Activate() | |
} | |
Function EXCEL-Set-FinalState([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
全シートを非表示解除、A1選択状態、拡大率100%にし、一番左のシートを選択状態にする | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.WorkSheets | %{ | |
Write-Output $_.Name | |
EXCEL-Set-Visible $_ | Out-Null | |
EXCEL-Set-A1 $_ | Out-Null | |
EXCEL-Set-Zoom $_ 100 | Out-Null | |
} | |
$book.WorkSheets(1).Activate() | |
} | |
Function EXCEL-Get-FormatConditionsALL([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートに設定されている条件付き書式をすべて取得する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$sheet.Cells.FormatConditions | |
} | |
Function EXCEL-Add-FormatConditions-Formula([__ComObject]$sheet, [String]$range, [String]$formula, [Boolean]$StopIfTrue){ | |
<# | |
.SYNOPSIS | |
シートに数式条件の条件付き書式を追加する(具体的な書式はデフォルトになる) | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if(!$range){ | |
throw "対象範囲を指定して下さい" | |
} | |
if(!$formula){ | |
$formula = $true | |
} | |
if(!$StopIfTrue){ | |
$StopIfTrue = $false | |
} | |
$new_fc = ($sheet.Range($range).FormatConditions.Add(2, "", $formula)) | |
$new_fc.StopIfTrue = $StopIfTrue | |
$new_fc | |
} | |
Function EXCEL-Duplicate-FormatConditions([__ComObject]$sheet, [String]$range, [__ComObject]$fc){ | |
<# | |
.SYNOPSIS | |
指定された条件付き書式をシートに複製する(具体的な書式はデフォルトになる) | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if(!$fc){ | |
throw "複製する条件付き書式オブジェクトを指定して下さい" | |
} | |
$new_fc = ($sheet.Range($range).FormatConditions.Add($fc.Type, $fc.Operator, $fc.Formula1, $fc.Formula2)) | |
$new_fc.StopIfTrue = $fc.StopIfTrue | |
$new_fc | |
} | |
Function EXCEL-Delete-FormatConditionsALL([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートに設定されている条件付き書式をすべて削除する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$sheet.Cells.FormatConditions.Delete() | |
} | |
Function EXCEL-Get-UserStyleALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
ブックに設定されているユーザ定義スタイルをすべて取得する | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.Styles | ?{$_.Builtin -eq $false} | |
} | |
Function EXCEL-Delete-UserStyleALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
ブックに設定されているユーザ定義スタイルをすべて削除する | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.Styles | ?{ | |
$_.Builtin -eq $false | |
} | %{ | |
Write-Output $_.Name | |
$_.Delete() | Out-Null | |
} | |
} | |
Function EXCEL-Export-PDF([__ComObject]$sheet){ | |
<# | |
.SYNOPSIS | |
シートをPDFにエクスポートする | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$export_dir = ($sheet.Parent.Path + "\【PDF】" + $sheet.Parent.Name) | |
if(!(Test-Path ($export_dir))){ | |
mkdir -Force ($export_dir) | |
} | |
Write-Output $sheet.Name | |
Write-Host ("ExportDir: " + $export_dir) | |
$sheet.ExportAsFixedFormat(0, ($export_dir + "\" + $sheet.Name + ".pdf")) | |
} | |
Function EXCEL-Export-PDFALL([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
EXCEL-Export-PDFの全シート版 | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
$book.WorkSheets | %{ | |
EXCEL-Export-PDF $_ | |
} | |
} | |
Function EXCEL-Export-PDFBook([__ComObject]$book){ | |
<# | |
.SYNOPSIS | |
ブック全体をまとめてPDFにエクスポートする | |
#> | |
if(!$book){$book = $global:EXCEL_BOOK} | |
if(!$book){ | |
throw "対象ワークブックオブジェクトを指定して下さい" | |
} | |
Write-Output $book.Name | |
Write-Host ("ExportDir: " + $book.Path) | |
$book.ExportAsFixedFormat(0, ($book.Path + "\" + $book.Name + ".pdf")) | |
} | |
Function EXCEL-Get-Table2Object([__ComObject]$sheet, [String]$range){ | |
<# | |
.SYNOPSIS | |
Excelのテーブルをオブジェクトとして取得する関数 | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
if(!$range){ | |
throw "対象範囲を指定して下さい(例:B3:D10)" | |
} | |
$start = $sheet.Range(($range -split ":")[0]) | |
$end = $sheet.Range(($range -split ":")[1]) | |
# テーブルオブジェクト作成 | |
$table = [PSCustomObject]@{ | |
key = @() | |
data = @() | |
} | |
#$table = New-Object PSCustomObject | |
#$table | Add-Member -MemberType NoteProperty -Name key -Value @() | |
#$table | Add-Member -MemberType NoteProperty -Name data -Value @() | |
# テーブルをオブジェクト化 | |
for($row=$start.Row; $row -le $end.Row; $row++){ | |
# 最初にデータの無い行は無視 | |
if($sheet.cells.item($row, $start.Column).text -eq "" ){ | |
continue | |
} | |
# 1レコード用オブジェクトを準備 | |
$record = New-Object PSCustomObject | |
$key_ref_number = 0 | |
for($col=$start.Column; $col -le $end.Column; $col++){ | |
# 最初にデータの無い列は無視 | |
if($sheet.cells.item($start.Row, $col).text -eq "" ){ | |
continue | |
} | |
# 1行目の値からキー名作成 | |
if($row -eq $start.Row){ | |
$table.key += $sheet.cells.item($row, $col).text | |
} | |
# 1レコード作成 | |
else{ | |
$key_name = ($table.key[$key_ref_number]) | |
$val = ($sheet.cells.item($row, $col).text) | |
$record | Add-Member -MemberType NoteProperty -Name $key_name -Value $val | |
$key_ref_number += 1 | |
} | |
} | |
# 1レコード追加 | |
if($row -gt $start.Row){ | |
$table.data += $record | |
} | |
} | |
return $table | |
} | |
Function EXCEL-Find-Cells([__ComObject]$sheet, [String]$range, [String]$reg){ | |
<# | |
.SYNOPSIS | |
Rangeで指定されたセルから正規表現にマッチするセルを取得する | |
#> | |
if(!$sheet){ | |
throw "対象シートオブジェクトを指定して下さい" | |
} | |
$sheet.Range($range) | ?{$_.Text -match $reg} | |
} | |
#### 使い方兼テストコマンド | |
# ブック開く系 | |
#EXCEL-Get-BookALL | %{EXCEL-Get-SheetsName $_} | |
#EXCEL-Get-BookList | %{EXCEL-Get-Book $_ | %{EXCEL-Show-BookInfo $_}} | |
# アクティブ取得系 | |
# EXCEL-Get-ActiveSheet | %{EXCEL-Get-ActiveCells $_ | %{$_.Text}} | |
# EXCEL-Get-ActiveSheet | %{EXCEL-Get-ActiveCellsAddress $_} | |
# シート追加/削除系 | |
#EXCEL-Get-Book | %{EXCEL-Add-Sheet $_} | |
#EXCEL-Get-Book | %{EXCEL-Add-Sheet $_ "TEST_SHEET"} | |
#EXCEL-Get-Book | %{EXCEL-Add-Sheet $_ "TEST_SHEET"} # エラーになるのが正しい | |
#EXCEL-Get-Book | %{EXCEL-Show-SheetInfoALL $_} | |
#EXCEL-Get-Book | %{$_.WorkSheets | ?{$_.Name -match "TEST.*"} | %{EXCEL-Delete-Sheet $_}} | |
#EXCEL-Get-Book | %{EXCEL-Show-SheetInfoALL $_} | |
# オートフィルタ系 | |
#EXCEL-Get-Book | %{EXCEL-Clear-AutoFilterALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Set-AutoFilterALL $_ "B3:E10" 4 @("a", "-")} | |
# シートの見た目を整える系 | |
#EXCEL-Get-Book | %{EXCEL-UnSet-VisibleALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Set-VisibleALL $_} | |
#EXCEL-Get-Book | %{EXCEL-UnSet-VisibleALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Set-A1ALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Set-ZoomALL $_ 50} | |
#EXCEL-Get-Book | %{EXCEL-Set-A1ALL $_ "C5"} | |
#EXCEL-Get-Book | %{EXCEL-Set-FinalState $_} | |
# 条件付き書式系 | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Delete-FormatConditionsALL $_}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Get-FormatConditionsALL $_}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Add-FormatConditions-Formula $_ "A1:E10"}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Add-FormatConditions-Formula $_ "A1:F10" '=ISBLANK(A1)=True'}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Add-FormatConditions-Formula $_ "A1:F10" '=ISBLANK(A1)=True' $true}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Duplicate-FormatConditions $_ "C3:I6" $_.Cells.FormatConditions(2)}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Duplicate-FormatConditions $_ "C3:I6" $_.Cells.FormatConditions(3)}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Get-FormatConditionsALL $_}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Delete-FormatConditionsALL $_}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Get-FormatConditionsALL $_}} | |
# ユーザ定義スタイル系 | |
#EXCEL-Get-Book | %{EXCEL-Get-UserStyleALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Delete-UserStyleALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Get-UserStyleALL $_} | |
# オリジナル系 | |
#EXCEL-Get-Book | %{EXCEL-Get-Table2Object $_.ActiveSheet "B3:E9" | %{$_.data | %{echo ("Index" + $_.b);echo (" test: " + $_.c)}}} | |
#EXCEL-Get-Book | %{$_.ActiveSheet | %{EXCEL-Find-Cells $_ "A1:E10" "a" | %{$_.Address();$_.Interior.ColorIndex = 6}}} | |
# PDFエクスポート系 | |
#EXCEL-Get-Book | %{EXCEL-Export-PDFALL $_} | |
#EXCEL-Get-Book | %{EXCEL-Export-PDFBook $_} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Name Synopsis | |
---- -------- | |
EXCEL-Get-Book 既に開かれているExcelブックからブックオブジェクトを選択して出力する関数 | |
EXCEL-Get-BookList 既に開かれているExcelブックのブック名をすべて出力する関数 | |
EXCEL-Get-BookALL 既に開かれているExcelブックからすべてのブックオブジェクトを出力する関数 | |
EXCEL-Check-ColorIndex 確認用にColorIndexの色でA列を塗り潰す関数 | |
EXCEL-Get-ActiveSheet アクティブシートを返す関数 | |
EXCEL-Get-ActiveCells 指定したシートの選択中のセルを返す関数 | |
EXCEL-Get-ActiveCellsAddress 指定したシートの選択中のセルのアドレスを返す関数 | |
EXCEL-Show-BookInfo ブック情報を色々と表示する | |
EXCEL-Get-SheetsName 全シート名を出力する | |
EXCEL-Add-Sheet ブックに指定された名前のシートを追加する | |
EXCEL-Delete-Sheet ブックからシートを削除する | |
EXCEL-Show-SheetInfo シートの様々な情報を出力する | |
EXCEL-Show-SheetInfoALL EXCEL-Show-SheetInfoの全シート版 | |
EXCEL-Set-AutoFilter シートにフィルタを設定する... | |
EXCEL-Set-AutoFilterALL EXCEL-Set-AutoFilterの全シート版 | |
EXCEL-Clear-AutoFilter シートのフィルタを解除する | |
EXCEL-Clear-AutoFilterALL EXCEL-Clear-AutoFilterの全シート版 | |
EXCEL-Set-Visible シートを表示する | |
EXCEL-Set-VisibleALL EXCEL-Set-Visibleの全シート版 | |
EXCEL-UnSet-Visible シートを非表示にする | |
EXCEL-UnSet-VisibleALL EXCEL-UnSet-Visibleの全シート版 | |
EXCEL-Set-A1 シートをA1選択状態にする | |
EXCEL-Set-A1ALL EXCEL-Set-A1の全シート版 | |
EXCEL-Set-Zoom シートの拡大率を設定する | |
EXCEL-Set-ZoomALL EXCEL-Set-Zoomの全シート版 | |
EXCEL-Set-FinalState 全シートを非表示解除、A1選択状態、拡大率100%にし、一番左のシートを選択状態にする | |
EXCEL-Get-FormatConditionsALL シートに設定されている条件付き書式をすべて取得する | |
EXCEL-Add-FormatConditions-Formula シートに数式条件の条件付き書式を追加する(具体的な書式はデフォルトになる) | |
EXCEL-Duplicate-FormatConditions 指定された条件付き書式をシートに複製する(具体的な書式はデフォルトになる) | |
EXCEL-Delete-FormatConditionsALL シートに設定されている条件付き書式をすべて削除する | |
EXCEL-Get-UserStyleALL ブックに設定されているユーザ定義スタイルをすべて取得する | |
EXCEL-Delete-UserStyleALL ブックに設定されているユーザ定義スタイルをすべて削除する | |
EXCEL-Export-PDF シートをPDFにエクスポートする | |
EXCEL-Export-PDFALL EXCEL-Export-PDFの全シート版 | |
EXCEL-Export-PDFBook ブック全体をまとめてPDFにエクスポートする | |
EXCEL-Get-Table2Object Excelのテーブルをオブジェクトとして取得する関数 | |
EXCEL-Find-Cells Rangeで指定されたセルから正規表現にマッチするセルを取得する |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment