• 締切済み

<新規Bookに アクティブセル領域を 値で貼り付けるマクロ>

<新規Bookに アクティブセル領域を 値で貼り付けるマクロ> 沢山の様々なデータが入力されている、巨大なExcelファイル(仮に「管理表.xls」)があるのですが ボタンを押すと、アクティブなセル領域(ドラッグで選んだセル領域)を 新規Bookに値で貼り付ける マクロを作成したいのにうまく動きません 下記コードだと、新規Book作成までは出来るのですが、 ペーストがされません。クリップボードにはデータが入るのですが 「管理表.xls」を全て選択された情報が入ってしまっています。 (ペーストすると 全データがペーストされる) マクロは始めたばっかりで ものすごく初心者なので恐縮なのですが ご教授ください。よろしくお願いします。 --------------------------------------- Private Sub CommandButton2_Click() Selection.CurrentRegion.Copy 'アクティブセル領域をコピー Workbooks.Add.Activate 'ブックを新規作成してアクティブに Range("A1").PasteSpecial Paste:=xlPasteValues End Sub ---------------------------------------

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

アクティブ領域とは、選択されているセル範囲ではなく、データがあるエリアを指します。 選択範囲だけで良いなら Selection.Copy です。 このマクロはワークシートに書いてありますよね。 ワークシートで単にRange("A1")と書いた場合、それはアクティブなブックやシートのRange("A1")ではなく、マクロが書いてあるシートのRange("A1")になります。従って、ペーストしていないのではなく、自分自身にペーストしています。 以下の様に直して見ました。 Private Sub CommandButton2_Click()   Selection.Copy '選択範囲をコピー   Workbooks.Add.Activate 'ブックを新規作成してアクティブに   Selection.PasteSpecial Paste:=xlPasteValues 'アクティブなブックのシートにペースト End Sub

関連するQ&A

  • 別のブックのセルの値をコピーするマクロについて

    ExcelのVBAのマクロに関する質問です。 複数のブックのセルの値をコピーするマクロについての質問なのですが、現在以下のファイルがあります。 サンプル1.xls サンプル2.xls サンプル3.xls データ.xls そして、 サンプル1のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA1~D1まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA1~D1まで、 サンプル2のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA2~D2まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA2~D2まで、 サンプル3のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA3~D3まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA3~D3まで、 上記のような形でコピーしたいのですがマクロがわかりません。 データ.xlsにボタンを作成し、そのボタンを押すとこの処理が実行されるようにしたいです。 どなかた方法を教えていただけますでしょうか。ご回答お待ちしております。 ※ファイルの名前は今回はサンプル1などとしましたが実際は違う名前も使用します。 また、ファイルの数も今回は3つにしましたが増減します。

  • マクロで、他のブックのあるシートのセルの値を取得する方法

    マクロ初心者です。よろしくお願いします。 2つのブックがあるとします(a.xlsとb.xls)。 この2つには似たようなデータが入っているのですが、これらを逐一比較するマクロを組みたいと思っています。 いま行き詰まっているのは、a.xlsの上でマクロを走らせる際、b.xlsのセルの値を取得することができないことです。 IF CELLS(1,1)=「ブックbの(1,1)の値」 THEN ・・・ というような条件式を作りたいのですが、「 」内をどのように書けばよいのでしょうか。 よろしくお願いします。

  • マクロでアクティブセルにペースト

    画像はエクセルのマクロで、F3~F7のセルをコピーして、O3のセルにペーストするという内容です。これをO3ではなく、アクティブセルにペーストするにはどのように記述すればよいでしょうか?

  • 値の貼り付けマクロが出来なくなりました。

    http://kokodane.com/macro17.htm 頻繁に、形式を選択して貼り付けで「値の貼り付け」を行うため、 上記のサイトを参考にしてマクロを作成しました。 コードは Sub 値の貼り付け() ' Keyboard Shortcut: Ctrl+t '   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _     SkipBlanks :=False, Transpose:=False End Sub です。 それが昨日のことなのですが、そのときはうまくマクロが動作して、 データを貼り付けることが出来ていたのですが、 今日やってみるとなぜかうまくいきません。 特に何か設定は変えていません。 セキュリティは下げた状態にしてあり、他のマクロは通常通り使えています。 コピーペーストは普通に行えています。 なぜなんでしょうか? 何度かマクロを作成しなおしてみたりもしたのですが、 どうやってもうまくいきません。 どなたか理由を教えて下さい。

  • エクセル マクロで別のブックに貼り付けたい!

    作成したシートを別のブック(既存)にマクロを使って貼り付けたい のですが、いろいろ調べた結果以下のようにはすることができました。 ---------------------------------------------------------------- Sub SaveSheet() Dim sFileName As String 'ファイル名の設定 sFileName = "C:\a\test.xls" 'シートをコピーして新規ブックを作成 Sheets(Array("Sheet1", "Sheet2")).Copy '作成したブックの保存 ActiveWorkbook.SaveAs sFileName End Sub ---------------------------------------------------------------- これはとあるサイトで見つけたもので、私自身が作成したものでは ありません。 このマクロの問題は、 ○あらたにブック(シート)が作成されること (マクロ実行時は上書きになるので、変更できなくても使えないわけ ではない) ○元データはシート丸ごとであり、セル範囲を選択できない。 ○貼り付けるシートにおいても、任意の場所を起点とできない。 ということです。 整理しますと、『作成したシートの任意のセル範囲を、別に存在する ブックに、任意のセルを起点として貼り付けたい』 ということです。 どうかよろしくお願いします。m(_ _)m

  • 値を入力後、自動的にアクティブセルが移動するマクロ

    (1)エクセルファイルを開けたときのアクティブセルを設定。 (2)そのセルに値を入力後、ENTERで違うセルに移動。  (違うセルは、隣接していない) (3)入力後、ENTERでまた違うセルに移動。 (4)数個のセルに入力後は、任意のセルに値を入力できるようにする。 マクロでできることなのかわかりませんが、 よろしくお願いします。

  • 一つのブックで作成したマクロを複数のブックにコピーするには?

    OSはXP_SP2、EXECEのバージョンは2003です。 (たとえば) D:\testというフォルダに1.xlsから2000.xlsというシート構成同一のブックが2000個あるとします。 「1.xls」のThisWorkbookにprivate subマクロを作成してテストを行い、 その後、2.xls~2000.xlsまでのブックのそれぞれのThisWorkbookにそのマクロを一気にコピーするとかの方法があるのでしょうか?

  • EXCEL 値のみをコピーするマクロ

    お世話になります。 特定のセル(M2)からアクティブセル(クリックで指定したセル)へ「値のみ」をコピーするマクロを考えています。 現在は「そのままコピー」するマクロになっているので、「値のみコピー」へ変更するには どうすればいいでしょうか? Sub 追番貼付け() ' ' Worksheets("データ検索用").Range("M2").Copy Sheets("見積書").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub

  • マクロで、別ブックのデータを、既存ブックの一欄に

    マクロで以下のような操作をしたいと思っております。 どのようなコードを書けばよろしいでしょうか。ご教授ください。 【顧客データ一覧.xls】というブックのシート1に顧客データ一覧表があります。 同ブックのシート1上部にコマンドボタンを作成し、ボタン押下で以下のような操作を行いたい 1.ファイルダイアログを開いて、【顧客データひとり分.xls】というブックを選択 2.【顧客データひとり分.xls】に入力されているデータを、【顧客データ一覧.xls】の顧客データ一覧表の末尾に、コピーして追加・上書保存 顧客データひとり分はセル(3,4)に年齢が入力されている等、入力箇所は固定です。 3.顧客データひとり分.xlsは閉じて、更新された顧客データ一覧.xlsを表示させる よろしくお願いいたします。マクロは作成したことがありますが、何年もブランクがあり、かなり忘れてしまいました・・・。 と、エクセル2003以来久しぶりに操作ですので、エクセルそのものに大変戸惑っております。。。実力不足でお恥ずかしいのですが、お力をお借りできれば幸いです。

  • リストボックスの項目に、他のブックのセルの値を設定するには?

    EXECL2003でユーザーフォームを作成しているのですが困っています。 リストボックス(またはコンボボックス)の項目の設定に、他のブックのセルの値を使用したいのですがわかりません。 具体的には「単価表.xls」「見積書.xls」と2つのブックがあり、「見積書.xls」にユーザーフォームを作成します。 そのユーザーフォームのリストボックスの項目に「単価表.xls」のセルの値を設定したいのです。 本を見たりWEBを検索しても、ブック内のシートのセルの値を設定する例しか見つけることができません。 何か手がかりでも教えていただければ助かります。 よろしくお願いいたします。

専門家に質問してみよう