- 締切済み
エクセルのマクロ
こちらではいつもお世話になっております。 早速ですが、教えて頂きたい事がございます。 マクロ(VBA)でブックAのセルA1からA4、一つ飛んでC1からC3、また一つ飛んで・・・ という感じで、これをコピーし、ブックBのA1からA4、一つ飛んでC1からC3、また一つ飛んで・・ という感じで貼りつけ(数値のみ)をしたいのですが、ブックAでコピーしたいセルが選択されないよう で、数値のコピーを出来ません。 コピー出来たと思ってブックAを観てみると、違う数字が貼りつけされているセルがあります。 自分自身の知識の中で思いつく限り試しても、どうしても上手くいきません。 同じようなマクロをブックAとブックBで設定しているのですが、 他のモノは問題なくコピー&貼りつけ出来ています。 それだけに余計に頭がこんがらがっています。 わかりにくい質問かもしれませんが、ぜひお教え下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>ブックAの("A1:A4,C1:C4,E1:E4,G1:G4,I1:I4").Copy >ブックBの("A1:A4,C1:C4,E1:E4,G1:G4,I1:I4").PasteSpecial xlPasteValues そんな手抜きの『言葉の説明』を聞いても、あんまり問題解決の役には立ちません。 あなたの失敗してるマクロを「コピー貼り付けて」情報提供してください。「いまこういうマクロで動かしてる」という『具体的なあなたのエクセルの事実』が重要です。 とは言え、いずれにしても ・マクロの記載内容も間違っている ・相変わらずナイショのままの(これも情報提供が必要と指摘してるんですよ?)具体的な表の作成状況も悪い といった複合要因じゃないかと、朧気に察しはつきます。 まず「回答したマクロをその通りコピー貼り付けて」動かしてください。 回答をフンフンと通り一遍目で見て眺めてるんじゃなくて、ご自分の「手を動かして」確かめて、結果を見てください。
- keithin
- ベストアンサー率66% (5278/7941)
>ブックAのセルA1からA4、一つ飛んでC1からC3… >これをコピーし、ブックBのA1からA4、一つ飛んでC1からC3… >…貼りつけ(数値のみ)をしたい まずは,たとえば sub macro1() workbooks("BookB.xls").worksheets("Sheet1").range("A1:A4").value _ = workbooks("BookA.xls").worksheets("Sheet1").range("A1:A4").value workbooks("BookB.xls").worksheets("Sheet1").range("C1:C3").value _ = workbooks("BookA.xls").worksheets("Sheet1").range("C1:C3").value workbooks("BookB.xls").worksheets("Sheet1").range("E1:E2").value _ = workbooks("BookA.xls").worksheets("Sheet1").range("E1:E2").value end sub といった具合にして様子をみます。 値を貼り付けるマクロです。 「できない」ことは判りましたが具体的に「どうやった」のかご説明がありませんので,「何が問題なのか」を推定する事もできません。結果して「こうすれば大丈夫」とお話しできるネタもありません。 あなたのマクロが単純に悪いだけかもしれませんし,問題の各シートの具体的な構造(例えばセルが結合されてるとか,列が非表示になってるとかetc,etc.)に問題の根っこがあるのかもしれません。
補足
早速の回答ありがとうございます。 説明不足ですみません。 ブックAの("A1:A4,C1:C4,E1:E4,G1:G4,I1:I4").Copy ブックBの("A1:A4,C1:C4,E1:E4,G1:G4,I1:I4").PasteSpecial xlPasteValues という様にしています。 が、ブックAの指定セルが選択された形跡がなく、 ブックBの指定セルに数字が貼りつけされません。 同じシートで、行と列を替え、同じマクロを10位作ってあるのですが、この1つだけが上手くいきません。 宜しくお願いします。