質問するログイン新規登録

Q&A

解決済

2回答

3111閲覧

テキストファイルからEXCELマクロを使ってコピーし指定した範囲に貼り付けしたい

Tokamura

総合スコア9

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2017/07/10 08:44

0

0

###前提・実現したいこと
.txtテキストファイルに保存してある文字列を、Excel2010でマクロを使って、Excelに貼り付けたいです。ただ、貼り付け先のExcelは個別にフォーマットを作成していて、指定範囲内に貼り付けさせたいと考えています。他のサイトを参考にして下記のようなソースコードを試しましたが、うまくいきません。

###発生している問題・エラーメッセージ

実行時エラー'1004’ コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません。情報を貼り付けるには、次のいづれかの操作を行なってみてください。 1つのセルをクリックし、貼り付けてみてください。 貼り付け元の形を確かめ、適切な範囲を選択したあと、貼り付けてみてください。

###該当のソースコード

Sub PasteFromCSV()
Const CSV_FILE = "c:\temp\command.txt"
Dim ReadWBk As Workbook
Dim WriteWBk As Workbook
Dim WriteSht As Worksheet
Dim Rng As Range

Set WriteWBk = ActiveWorkbook
Set WriteSht = WriteWBk.ActiveSheet

Set ReadWBk = Workbooks.Open(CSV_FILE)
Set Rng = ReadWBk.Worksheets.Item(1).UsedRange
Range("A1:A170").Copy

WriteSht.Range("A1:A93,A111:A200").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False

ReadWBk.Close
Set ReadWBk = Nothing
End Sub

###試したこと
貼り付け先のRange("A1:A93,A111:A200")を範囲指定しなければ、貼り付けはできるようです。貼り付けたくない範囲(A94~A110)を除外したいのですが、エラーとなってしまいます。

###補足情報(言語/FW/ツール等のバージョンなど)
Excel2010で試しています。

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

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

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

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

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

coco_bauer

2017/07/10 09:06

170個のセル(Range("A1:A170"))をコピーして、183個のセル(Range("A1:A93")の93セルと、Range("A111:A200")の90セルを併せたもの)に貼り付けようするのは、何か前提としているものが破綻しているのではないですか? 冷静になって、やろうとしている事を整理しては如何でしょう?
Tokamura

2017/07/10 09:12

コメントありがとうございます。コピー時のセルの数と貼り付け先のセルの数を合わせても同様な結果でした。質問ではセルの数を合わせておいた方が明確だったかもしれません。失礼しました。
guest

回答の取得に失敗しました

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問