質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

5958閲覧

PowershellでテキストからExcelのセルへテキスト貼り付け

shuro

総合スコア14

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2018/04/12 11:52

編集2018/04/14 05:45

■環境
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から行うことはそもそも無理なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Excel を新しく開いて A1 に文字列を入れるコードです。

PowerShell

1$excel = New-Object -Com Excel.Application 2$excel.Visible = $true 3$book = $excel.Workbooks.Add() 4$book.ActiveSheet.Range("A1").Value = "ここは A1"

###追記

結合されたセルにクリップボードから貼り付けるには結合された範囲の大きさがそろっていないといけません。
しかし上記のように値を設定するだけなら結合された範囲中の左上隅のセルに値を設定してください。

投稿2018/04/13 23:32

編集2018/04/13 23:37
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shuro

2018/04/14 05:43

ご回答ありがとうございます。 左上隅のセルに値を設定し、コピー元の結合範囲も揃えてやってみましたが、 "結合されたセルの一部を変更することはできません。" のエラーが出てしまいます。 何か足りない要素があるでしょうか?
Zuishin

2018/04/14 07:07 編集

回答に書いたように範囲が違うので左上にペーストはできません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問