• ベストアンサー

任意のシートを選択して対象をコピー

例えばsheet1のA1:B10のセルの内容を、任意に選択したシートの、任意の箇所に貼り付けるにはどの様にしたらいいのでしょうか? 考えとしては、マクロを起動させて対象範囲を選択した後、シートの選択を行い「このシートでいいですか」といったメッセージボックスを出したいです。OKなら今度は貼り付け選択のメッセージボックスを出しOKなら貼り付け。シート選択でキャンセルと選択すると別のシートの選択が出来るようにしたいのです。 ユーザーの入力指示をどの様にすればいいのか全く判らず困っています。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Sub MyCopyPaste() Dim CopyArea As Range Dim PasteArea As Range On Error GoTo ErrorHandler Set CopyArea = Application.InputBox(prompt:= _ "コピー元を指定して下さい", Title:="コピー元", Type:=8) Set PasteArea = Application.InputBox(prompt:= _ "貼り付け先を指定して下さい", Title:="貼り付け先", Type:=8) CopyArea.Copy PasteArea Exit Sub ErrorHandler: MsgBox "処理が取り消されました" End Sub ではどうでしょう?

ae-1sp
質問者

お礼

出来ました! 教えていただいた内容を参考にすれば、使用範囲がさらに広げられますね。 今後も使わせていただきます。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

セルの範囲指定には Excelのワークシート関数のInputBoxを使うといいように思います Sub Macro1()   dim rSrc as Rage, rDes as Range   Set rSrc = GetCellArea("コピー元のセル範囲を指定してください")   if rSrc is Nothing then     MsgBox "セル範囲が設定されていません"     Exit Sub   end if   do     Set rDes = GetCellArea("コピー先のセル範囲を指定してください")     if rDes is Nothing then       if vbYes = MsgBox("処理を中断しますか?", vbYesNo ) then         Exit sub       End if     else       if rDes.Cells.Count > 1 then         if vbYes = MsgBox("コピー先は単一セルの指定です" & _              vbcrlf & "処理を中断しますか?", vbYesNo) then           Exit Sub         End if       End if     End if   loop while rDes Is nothing   rSrc.Copy rDes End Sub Function GetCellArea(strPrompt as String) as Range   dim r0 as Range   On Error Resume Next   Set r0 = Application.InputBox( strPrompt, Type:=8 )   GetCellArea = r0 End Function

ae-1sp
質問者

補足

ありがとうございます。 試して見たのですが、最初のセル範囲の設定のところでどの様に選択しても、MsgBox "セル範囲が設定されていません"に移動してしまいます。 また、この部分をDimのRange宣言を解除して rsrc = Range("F13:AI66") としてコピー元を強制的に指定して、コピー先を選択すると、MsgBox("処理を中断しますか?", vbYesNo ) に移動してしまいます。 セル選択が悪いのでしょうか? 重ね重ね申し訳有りませんが、ご教示お願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロの記録で任意の文字を検索してそのセルから範囲を選択したいのですが

    マクロの記録で任意の文字を検索して、見つかったセルから範囲を選択して別なシートへ切り取りし、貼り付けたいですが何か方法はありますか?現在は検索をしたセル番号になってしまいます。 マクロはじめたばかりです。 検索→い→(A2:C5)選択&切り取り→sheet2貼り付け→検索(sheet2)→え→(A3:C4)選択&切り取り→sheet3貼り付け sheet1    →sheet2   →sheet3  ABC     ABC    ABC 1あかさ    1いきし   1えけせ 2いきし    2うくす   2おこそ 3うくす    3えけせ 4えけせ    4おこそ 5おこそ できれば検索で発見されたA2やA3を任意のアクティブセルにし、範囲はC列の一番下のセルを選択し切り取りたいのですができますでしょうか。

  • 別のシートにコピーする方法(マクロ)

    シート1 と シート2 を用意します。 シート1には、 A1:B3 の範囲に文字が入力されています(関数の場合あり) A1:B3の範囲(列の場合あり)をコピーして シート2の現在選択されているセルから貼り付けをワンクリックで する方法(マクロ)はありませんか? 私は、マクロはわかりませんが、マクロでしか出来ないようであれば 覚えます。 教えてください。

  • 任意のブックを開き、任意のシートの範囲をコピーして貼り付けるマクロ

    タイトル通りなのですが、 アクティブなブックから 任意のブックを開き、任意のシートを選び任意の範囲をコピーして、 元のアクティブなブックに貼り付けるマクロがほしいです。 このとき、この任意のブックのシートにはフィルタがかかっているのですが、 フィルタ解除しなくても不可視セルも含めてすべてのデータをコピーできる方法はありますか? よろしくお願いいたします。

  • ExcelVBA セルの範囲を選択

    現在、ユーザーフォーム上のコマンドボタン押下にてインプットボックス(Type:=8)を表示し、シート上のセル範囲を選択するマクロを使用しています インプットボックスを介さず、コマンドボタン押下からセルの範囲選択が出来る、ということはできるでしょうか?

  • 複数選択したセルを含む行をまとめてコピー

    VBA初心者です。EXCEL2003を使用しています。 ◆やりたい事  ユーザーにセルを指定させ、そのセルを含む行をまとめてコピーして新規のブックに貼り付けたい。 ◆条件  ・ユーザーが指定できるセルはB列だけにしたい。   (B列以外を選択したらメッセージを表示して再選択させる)  ・ユーザーが指定できるセルは(連続・不連続問わず)最大8個までにしたい。   (未選択 or 8個以上ならメッセージを表示して再選択させる)   ◆完成イメージ  ・ユーザーがセル(ex.B4,B6:B8,B20(=計5行))を選択  ・マクロ実行(コマンドボタンを押す)  ・新規ブックのsheet1.range("A1")に貼り付け(=A1:A5に 貼り付く) こんな感じなんですが、なにとぞ御教授願います。

  • 任意のシートから別のシートにコピーするマクロについて

    任意のシートから別のシートにコピーするマクロについて Excel2007を使っています。 一つのファイルで任意のシートから別のシートの任意のセルにデーターを1000ケタ以下切り捨てでコピーする方法を教えてください。

  • マクロ 任意の・・・を特定のシートへコピーする

    いつも回答して頂きありがとうございます。 質問内容ですが・・・ (1)任意のブックを開ける。今回は『C:\Users\Owner\Documents\作業管理.xlsm』   ※本当のファイル名は『作業管理2013年8月』みたいなものになる 9月なら『作業管理2013年9月』 (2)任意のシートをコピーする。今回は『1』   ※数字の意味は日付。    ですが、今日の日付=シート名になるとは限らない。ですので、任意で選択したい。 (3)特定のシートへ貼り付ける。   dim ws1 as object set ws1 = activesheet (4)・・・ という順序のマクロを考えていますが、任意のブックを開けて、任意のシートをコピーするという箇所の記述が分かりません。どのような記述方法があるのか教えて頂けないでしょうか? 宜しくお願い致します。

  • エクセルで特定のセルを選択したい(マクロ)

    以下のようなマクロを組もうとしていますが、出来ません。 sheet1において 1)マクロを実行すると、メッセージボックスが出る。 2)メッセージボックスに入力した文字と同じ文字が入力されているセルを選択する。 3)2)のセルの1行下のセルを選択する。 2)で必ずエラーが出てしまいます。どのような方法が良いのか教えていただけるとありがたいです。よろしくお願いします。

  • シートにマクロ記述があるとシートに貼付ができない

    Windows7 Excel2007を使ってマクロ作成中の初心者です。 他の方がwinXP使用してるので、受け渡しのため、互換性のある Excel97-2007で保存・マクロ作成しています。 1)エクセルの新規ブックで、sheet1のセルA1をコピーし、sheet2のA1に貼り付けます。 当然のことながら、正常に貼り付けできます。 貼り付けが完了してもなお、「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」が表示され続けています。 2)ところがsheet1、sheet2にコードを書くと、(たとえば下のコード) sheet1のセルA1を右クリックしコピーを選択すると「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」が表示されます。そしてsheet2に「貼り付け」をしようsheet2の シート見出しを選んだ瞬間、「コピー先を選択しEnterキーを押すか、 貼り付けを選択します。」の表示が消えてしまい、「貼り付け」ができません。 3)他のシートに貼り付けができないので、シートにマクロがかけないので、困っています。どうしたらいいかお助けください。 Private Sub Worksheet_Activate() ActiveWindow.DisplayHorizontalScrollBar = False '水平 End Sub

  • EXCEL マクロ リストボックスよりシート名を選択してシートを選択

    こんばんは. エクセルを使って備品の管理システムを構築したいと考えております. マクロを使います. VBAは初心者です. ・備品を20種類ほどに分類し,シートも同様に20作りました. ・ウィンドウを2つに分割し,上下に並べています. ・上ウィンドウの最初のシート(シート名:備品一覧)のB2セルにリストボックスを設け,そのリストで20種の備品の中から一つを選択できるようにしています. ・リストボックスの側にマクロ対応のボタンを設置しております やりたいこととしては・・・ 『上ウィンドウのリストボックスで備品を選択し,ボタンをクリックすることによって,下ウィンドウでその選択した備品名のシートに移動する』 です. 私が組んでみたマクロは下記です. ---------------- Sub 備品を選択     Dim sheetname As String 'リストボックスからシート名を取得する sheetname = Range("B2").Value '下ウィンドウをアクティブにしてシートを選択する Windows(2).Activate Worksheets("sheetname").Select End Sub ------------------ エラーは,『Worksheets("sheetname").Select』のところで 【実行値エラー'9' インデックスが有効範囲にありません.】 参考書やグーグルで調べてもわかりませんでした. ご教授いただければ幸いです. よろしくお願い致します.

このQ&Aのポイント
  • テープカッターの刃が摩耗して切れが悪くなった場合、交換ができるかどうかについて相談です。
  • パソコンとスマートフォンのOSはWindows10とiOSで接続方法はUSBケーブルです。
  • ブラザー製品のテープカッターの交換方法や交換用パーツの型番について知りたいです。
回答を見る