■環境
Windows7(64bit)
PowerShell2.0
■やりたいこと
①ファイルの内容を一行ずつ読み出して、Excelの所定のセルにテキストをコピーしたい場合にどのように記述すればよいでしょうか?
$book1 = $excel.Workbooks.Open($Path1)
$book2 = $excel.Workbooks.Open($Path2)
$sheet1 = $book1.Worksheets.item("sheet名1")
$sheet2 = $book2.Worksheets.item("sheet名2")
ここで、
$sheet1.Range("A1").copy($sheet2.Range("R7"))
のようにsheet間のセルのテキストを貼り付けることはできますが、その際に貼り付け先のシートの書式(fontや文字の大きさなど)に合わせること(つまり貼り付け元の書式を持ってこないでテキストのみを貼り付けたい)は可能でしょうか?可能であればその方法。
② ①を実現する方法を知らないため、一旦テキストファイルに
$sheet1.Range("A1").Value2 | Out-File -Append -FilePath "パス名"
としておいて、
このファイルをfile1とし、
$file1 = "パス名.txt"
貼り付け先のexcel シート内のセルを
$TargetRangeArray = @("A1", "B2", "C3", "D4", ..."Z26")
と配列にしておいて、
file1を1行ずつ読み込み、対象のセルに順番に貼り付けたい。
イメージとしては、たとえば、1
$file1 | ForEach-Object {$_ } | ForEach-Object { $_ $sheet2.Range("TargetRangeArray") }※ここの記述が分かりません!
のようにForEachでイテレーションして一気に貼り付けたいと思うのですが、ここの記述がどうもうまくないようでcopyやpasteなどをいろいろやってみたもののエラーになり貼り付けられません。
仮に①でできるとしても、fileから1行ずつ読み出してセルにテキスト情報のみを貼り付けるにはどう記述すればよいか、方法があればご教示いただければありがたいです。
■追記:
③貼り付け先に結合されたセルがある場合にエラーが出て貼り付けられないのですが、貼り付ける方法はあるでしょうか?
同様に、貼り付け先にプルダウンが設定されている場合に、メニューから選択させる、という操作をPowerShellから行うことはそもそも無理なのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/14 05:43
2018/04/14 07:07 編集