if関数をネストしたり、if関数の結果でセルを複数使ったり。
でも、powershellとImportExcelが使えるならもっと簡単にできるはず!
マクロ無しだけど、if文とか使うのでプログラム的なことは必須。
たとえば、B列の人口総数の下1桁の数値が奇数と偶数を判別して、G列の入力するとき。
4桁目も数値だけ漢字に変換してH列に入力するとき。
if文を作って、forで回せばできるはず。
Excelだと少し面倒なのでpowershellの方がいいかも。
ImportExcelがインストールできれば、の話しだけど・・・。
住所から丁目とか番地を除外するのもできそう。
漢数字とかの判定を細かくifで分岐すれば。
---
# エクセルを開く
$xlpkg = Open-ExcelPackage c:\tmp\test.xlsx;
# 一番目のシートをオブジェクトに割り当て
$sh=$xlpkg.workbook.worksheets[1];
# 偶数奇数の判定
# Cells[].textはwriteはできないのでValue使う
for($i=2;$i -le $sh.dimension.rows; $i++){
$val=$sh.cells[$i,2].value;
if( ($val % 2) -eq 0){
$sh.cells[$i,7].value ="偶数";
}else{
$sh.cells[$i,7].value ="奇数";
}
}
#下4桁目の数値を漢字に変更
for($i=2;$i -le $sh.dimension.rows; $i++){
$val= $sh.cells[$i,2].value;
$val= [math]::floor( $val / 1000 )%10 ;
switch( $val){
0{$sh.cells[$i,8].value ="零";}1{$sh.cells[$i,8].value ="壱";}
2{$sh.cells[$i,8].value ="弐";}
3{$sh.cells[$i,8].value ="参";}
4{$sh.cells[$i,8].value ="四";}
4{$sh.cells[$i,8].value ="四";}
5{$sh.cells[$i,8].value ="伍";}
6{$sh.cells[$i,8].value ="六";}
7{$sh.cells[$i,8].value ="七";}
7{$sh.cells[$i,8].value ="七";}
8{$sh.cells[$i,8].value ="八";}
9{$sh.cells[$i,8].value ="九";}
}
}
# エクセルを保存して閉じる
$xlpkg.save();
$xlpkg.dispose();
---
---
# モジュールのインストール
Install-Module ImportExcel
# インストールしたモジュールの確認
Get-InstalledModule
# モジュールのアップデート
Update-Module ImportExcel
---
ImportExcelでは、EPPlusの命令が一部使えるはず。
https://github.com/JanKallman/EPPlus
#最後の追加はCellsで値を設定するだけ。
$sh.InsertColumn(7,1);
$sh.InsertRow(1,3);
$sh.DeleteColumn(7,1);
0 件のコメント:
コメントを投稿