PowerShell

PowerShell

Excel上のチェックボックスの状態を変更するPowerShellのサンプルコード(フォームコントロール)

Excel上のフォームコントロールのチェックボックスの状態を変更する、PowerShellのサンプルコードを紹介します。操作対象ExcelファイルPowerShellから操作するチェックボックス入りのExcelファイルです。Book1.xlsx下記画像の1行目3列目のアイコンのチェックボックスを使用しています。細かいことを書くとこんな状態ですがさらっと読めばよいです。オブジェクト名「Check Box 1」~「Check Box 5」の、チェックボックスを5つ追加しています。チェックボックスはグループ化されています。チェックボックスはフォームコントロールです。※ActiveXコントロールではありません。単一のチェックボックスの変更ソースコード「りんご」のチェックボックスについてONにしてみます。「りんご」のオブジェクト名は「Check Box 1」なので、CheckBoxesに「Check Box 1」を指定します。$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$e...
PowerShell

Excel上のチェックボックスの状態を取得するPowerShellのサンプルコード(フォームコントロール)

Excel上のフォームコントロールのチェックボックスの状態を取得する、PowerShellのサンプルコードを紹介します。操作対象ExcelファイルPowerShellから操作するチェックボックス入りのExcelファイルです。Book1.xlsx下記画像の1行目3列目のアイコンのチェックボックスを使用しています。細かいことを書くとこんな状態ですがさらっと読めばよいです。オブジェクト名「Check Box 1」~「Check Box 5」の、チェックボックスを5つ追加しています。チェックボックスはグループ化されています。チェックボックスはフォームコントロールです。※ActiveXコントロールではありません。単一のチェックボックスの状態の取得ソースコード「りんご」のチェックボックスの状態を取得して、表示してみます。「りんご」のオブジェクト名は「Check Box 1」なので、CheckBoxesに「Check Box 1」を指定します。$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $...
PowerShell

PowerShellの比較演算子のチートシート

PowerShellの比較演算子は-eqや-neなどの文字列で記述し、学生の頃数学で習ったような等号(=)、大なり(>)、小なり(<)を使いません。なので、演算子のパターンを覚えておく必要があります。ただ一覧化を見るとワンパターンなのに気づき、何度か構文を記述をすると慣れてくるはずです。チートシートPowerShellの比較演算子のチート表です。比較演算子覚え方(英語)Java(参考)意味挙動-eqequal==等しい左辺と右辺が等しい場合、$trueを返します-nenot equal!=等しくない左辺と右辺が等しくない場合、$trueを返します-ltless than<より小さい左辺が右辺より小さい場合、$trueを返します-leless than or equal<=以下左辺が右辺以下の場合、$trueを返します-gtgreater than>より大きい左辺が右辺より大きい場合、$trueを返します-gegreater than or equal=以上左辺が右辺以上の場合、$trueを返します比較演算子のチート表基本はequal、less、greaterと数合わせのthanの4単語...
PowerShell

PowerShellで実装してみるサーチアルゴリズム(リニアサーチ、バイナリサーチ)

PowerShellでサーチアルゴリズムを実装してみました。PowerShellで実行するいいところは、環境の設定に時間をかけず、この手の勉強ならすぐできることですね。今回実装したのはリニアサーチ、バイナリサーチの2種類です。サーチアルゴリズム「リストデータからキーを探す」アルゴリズムのことをサーチアルゴリズムといいます。代表的なサーチアルゴリズムとして、下記の3つがあります。リニアサーチ(別名:線形探索)バイナリサーチ(別名:二分探索)ハッシュ法本記事では上記のうち基礎的な内容の1.と2.について、Windowsに標準搭載のPowerShellで実装します。アルゴリズムの内容を分かりやすくするため、List Class等は作成せず配列を使用します。配列データに対して検索し、ヒットした値の位置を返します。リニアサーチまずはリニアサーチです。こちらは配列を先頭から順に検索して、見つかったらその位置を返却するサーチです。ソースコード実際に検索する部分をlinearSearch関数として切り離しています。検索データの配列と見つけたい値を、引数としてlinearSearch関数に渡して実行しま...
PowerShell

複数のExcelファイルのシートを1つのExcelブックへコピーしていくPowerShellのサンプルコード

複数のExcelファイルのシートを1つのExcelブックへ集約していく、PowerShellのサンプルコードを紹介します。仕様サンプルとして、以下のようなExcelファイル3つを用意します。これら3ブックにあるシートを、新しいブックのAllSheets.xlsxにコピーします。Book1.xlsxBook2.xlsxBook3.xlsx実行結果のイメージは以下のとおりです。絵心がなくてすみませんが・・ソースコードソースはPowerShellで記述します。createAllBookSheets.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false# 出力先ファイル$destFilePath = (Convert-Path .) + "\AllSheets.xlsx"$destBook = $excel.Workbooks.add()# 入力元ファイル$sourceFiles = Get-Item *.xlsxf...
PowerShell

PowerShellによる挿入ソートのサンプルコード

PowerShellで挿入ソートをするサンプルコードを紹介します。仕様PowerShellで配列データを、挿入ソートをして表示します。PowerShellは標準でソートの関数が用意されていますが、あえて自力でソートする関数を作成します。ソースコード挿入ソートをする部分をinsertSort関数として別に切り出しました。テストデータとしてランダムな数字を配列で用意して、ソート前後で表示します。挿入ソート.ps1# sort functionfunction insertSort($data){ for($i = 0; $i -lt $data.Count; $i++){ # < $temp = $data for($j = $i; $j -gt 0 -and $data -gt $temp ; $j--){ # 挿入位置まで値をスライドする $data = $data } $data = $temp } return $data}$array1 = @(100,0,1,75,3,4,50,2,10,2,99,5,8,7,35,4,8)# ソート前表示Write-Host "ソート前"Wr...
PowerShell

PowerShellによりExcelのシートの並び替えをするサンプルコード

PowerShellによりExcelのシートの並び替えをするサンプルコードを紹介します。仕様以下のようなサンプルファイルを用意します。Book1.xlsxうまくいけば、PowerShell実行後にシートがSheet1→Sheet2→Sheet3・・・Sheet6の並び順に変わります。以下のキャプチャのイメージですソースコードソースはPowerShellで記述します。SortExcelSheets.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false$fileName = "Book1.xlsx"$filePath = (Convert-Path .) + "/" + $fileName$book = $excel.Workbooks.Open($filePath)# シート名の取得$workArray = @()foreach ($s in $book.sheets){ $workArray+= $s.nam...
PowerShell

PowerShellによりExcelファイルのシートの色を変更するサンプルコード

PowerShellによりExcelファイルのシートの色を変更するサンプルコードを紹介します。Web上で類似ソースが意外に見つからなかったので、VBAのサイトを見ていろいろ試しました。仕様以下のようなExcelファイルを用意して、PowerShellからシートの色を変えてみます。なお、実装方法はいくつかあります。IndexColorプロパティ版IndexColorによりSheet1の色を設定します。一番記述が簡単です。たまにWeb上で出てくるサンプルもこの方法が多く、最も一般的な方法なのかと思われます。ソースコードsetSheetColorColorIndex.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false$fileName = "Book1.xlsx"$filePath = (Convert-Path .) + "/" + $fileName$book = $excel.Workbooks.Open(...
PowerShell

PowerShellによりExcelの各シートの先頭に連番を振るサンプルコード

PowerShellによりExcelを操作し、各シートの先頭に連番を振るサンプルコードを作成しました。仕様Excelファイルの各シートの先頭に、PowerShellから連番を振ります。以下のようなサンプルファイルを用意します。book.xlsxPowerShell実行後、うまくいけば以下のようにシート名が変わります。実行前のシート名ABCD実行後のシート名01_A02_B03_C04_DソースコードソースはPowerShellで記述します。addSheetNumberToExcelSheet.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false$fileName = "book.xlsx"$filePath = (Convert-Path .) + "\" + $fileName$book = $excel.Workbooks.Open($filePath)for ($i=1; $i -le $book.wo...
PowerShell

PowerShellによる選択ソートのサンプルコード

PowerShellで選択ソートをするサンプルコードを紹介します。仕様PowerShellで配列データを、選択ソートして表示します。PowerShellは標準でソートの関数が用意されていますが、あえて自力でソートする関数を作成します。ソースコード選択ソートする部分をselectionSort関数として別に切り出しました。テストデータとしてランダムな数字を配列で用意して、ソート前後で表示します。SelectionSort.ps1# sort functionfunction selectionSort($data){ for($i = 0; $i -lt $data.Count - 1; $i++){ # 0 to array.count - 1 $min = $i; # 最小値 for ($j = $i+1; $j -lt $data.Count;$j++){ if($data -lt $data){ $min = $j } } # swap $tmp = $data $data = $data $data = $tmp } return $data}$array1 = @(100,0...