アプリ版:「スタンプのみでお礼する」機能のリリースについて

 Excelで見積書を作成しています。
 マクロでページを追加できるようにしたいのですが、貼り付け先のセルを指定する方法をインターネットで探しながら作ってみると

 実行時エラー1004 Range クラスの PasteSpecial メソッドが失敗しました。

となります。

 ワークシートを指定すればいいのかなと思いますが、どういう風に指定するのかがわかりません。
 
 どうか、教えてくださいませんでしょうか。宜しくお願いします。






Sub 頁追加()

ActiveSheet.Unprotect

ActiveSheet.Range("A42:AZ84").Copy


Dim a As Range
Set a = Application.InputBox( _
Prompt:="セル範囲を選択してください", _
Title:="セル選択ダイアログ", _
Type:=8)
a.PasteSpecial
Application.CutCopyMode = False

EndSec:
Set Rng = Nothing

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

A 回答 (2件)

こんなカンジでしょうか。



sub macro1()
 dim res as range
 on error resume next
’シートを保護する
 activesheet.protect userinterfaceonly:=true
’対象のセルを指定する
 set res = application.inputbox(prompt:="Select Range", title:="Selection", type:=8)
’キャンセルしたら終了する
 if res is nothing then exit sub
’コピーして貼り付ける
 range("A42:AZ84").copy destination:=res.cells(1)
end sub
    • good
    • 0
この回答へのお礼

 返事が遅くなってしまって申し訳ありませんでした。

 早々にご回答をいただいていたようで、本当に感謝いたします。



 keithin様の文を殆どそのまま貼り付けましたら、ちゃんと動いてくれました。

 勉強不足で、時間もあまりなくて、自力ではもう無理かなと思っていたところ、思い切って質問してみて良かったです。



 本当にありがとうございました。

お礼日時:2011/12/20 12:00

原因は、copy後に余計なメソッド(Inputbox)がある為、copyがリセットされ


PasteSpecialメソッドでコピー元なしとなるからです。
copyをInputBoxメソッドの直後に移動すれば動作します。
因みにキャンセルボタン押下するとInputBoxメソッドでエラーになるので
もう少しweb検索して学習して下さい。
    • good
    • 0
この回答へのお礼

 お返事が遅くなり、申し訳ございませんでした。

 また、早々に回答してくださりありがとうございました。


 mu2011様にご指摘された箇所を見て、納得です。
 それが原因でエラーが出ていたのですね。

 何をどう検索すると自分の知りたいことが解るのかさへもわからない状態になっていました。
  
 ここへ質問してこんな風に回答していただき本当に感謝です。



 キャンセルボタン押下・・・・の件も、頑張って調べて学習してみます!


 本当にありがとうございました。

お礼日時:2011/12/20 12:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!