• ベストアンサー

EXCEL VBAでコピー元の選択をしたい時

初めて「教えてgoo」を利用します。掲示板等も未だ利用したことがありません・・マクロの初心者です。 ★関数を使用する時、引数のセル範囲を選択するダイアログボックスのようなものはマクロで作れるのでしょうか。 要は、BOOK1のあるセルでBOOK2のデータの範囲をコピーしてきて貼り付けたいのです。常に同じ保存場所にある同じファイル名ならよいのですが、日々取得するデータのためできません。 作業はEXCEL2002で集計表を作成しています。 集計用ブック・集計結果の表示用(関数やマクロあり) データブック・日々取得するデータ(商品別に複数あり日々名前や保存場所も変わる) 取得するデータはFD数枚に保存されていて、集計用の各シートに貼り付けることによって、まとめのシートに集計が反映されるようにしてあります。   集計シートで「コピー元を選択してください」とダイアログボックスがでてきて、そこを関数の時のように範囲指定してOKすると、アクティブにしていたセルの所に貼りつく・・というものがつくりたいのです。 どなたかVBAにお詳しい方、お知恵をください。 検索方法が下手なのか、類似の質問も見つけられませんでしたし、本も何冊か買いましたがわかりませんでした。 よろしくお願いいたします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんな感じ? Sub test1() Dim r As Range On Error Resume Next  Set r = Application.InputBox("指定", "セル範囲", Type:=8)  r.Copy  ActiveCell.PasteSpecial xlPasteAll  Application.CutCopyMode = False End Sub

marokuri
質問者

お礼

こんなに早くご回答頂いて感激しました。 早速テストしてみましたらバッチリでした。 papayuka様、ありがとうございました。 勇気をだして質問してみてよかったです。 知らないことは、考えてもわからないし、知識のある方にお聞きするのが一番だと感じました。 本当に助かりました。

その他の回答 (1)

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

範囲を選択してください - OK のフォームをモードレスで表示する 範囲選択操作をする -> OKボタンを押す Selectionで選択範囲を参照する でできると思います

marokuri
質問者

お礼

gatyan様、早速のご回答、本当にうれしいです。 こんなに夜遅くなのに、助けてくださる方がいることがとても心強いです。 マクロ初心者につき、「モードレスで表示する」の意味が恥ずかしながら理解できません。 がんばって本などを読んで勉強してみます。 ほんとうにありがとうございます。

関連するQ&A

  • EXCEL VBAについて

    VBAでCSVファイルをテンプレートのBBOKに読込むコードを 作り、CSVファイルから読込んだBOOK1データを集計する BOOK2を作成しています。 BOOK1・11/21・・・11/21・・・11/22・・・11/23と続きます      A     B     C      D 1  ID     店名   売上    日付 2 1104567   渋谷店  190,809   11/21 3 1102031   新宿店  209,808   11/21 4 1103450   横浜店  108,765   11/21 BOOK2・集計      A    B    C       D       E 1  ID   店名   11/21    11/22     11/23 2 1104567  渋谷店  190,809   203,487 3 1102031  新宿店  209,808   340,876 4 1103450  横浜店  108,765   547,627 ※BOOK1とBOOK2のIDの並び順は一致していません。 上記のBOOK1のデータをBOOK2に読込ませたいと考えています。 VLOOKUPやINDEX関数を使用しようかと考えたのですが、日付毎に ファイル名が違うのと、集計のファイルには外部参照をさせたくないと 考えています。 VBAで作成したいコードはBOOK1からBOOK2の日付のセルにIDを検索条件として日付毎のファイルを読込ませたいです。 フォームで日付を入力し、コピーするBOOK2のセルを指定後、BOOK1を選択するためにダイアログボックスを出したいです。 BOOK2のIDを検索条件としてBOOK1から一致する売上セルを抽出するコードだけでもわかれば何とか作成できそうなのですが、 ご教授いただけませんでしょうか?

  • EXCEL VBA プログラミング

    EXCEL VBAについて教えて下さい。 プログラミング超初心者です。 book1でマクロを実行し、ダイアログボックスを表示させて、任意のファイル(book2)を開き、book1のsheet1をまるごとbook 2の末尾にコピーするという処理をしたいのですが、うまくマクロが組めません。 ダイアログボックス表示→ファイルの選択まではいけたのですが、その先で苦戦しています。。 ご存知の方、マクロの組み方をご教示いただけますでしょうか。 よろしくお願い致します。

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • 他ブックからのデータ検索・コピー(VBA)

    【Book2】(Sheet2)L1に「12-1」を入力 ↓ 【Book1】(Sheet1)で「12-1」をM列、T列、AA列から検索→M4に「12-1」があった ↓ 【Book1】(Sheet1)N4:S4のデータを【Book2】(Sheet2)M1:R1にコピー 各ブックは同一ファイルに保存 検索する文字列の重複はなし 現在は関数≪VLOOKUP≫を使い上記を行っています。 マクロを使った方がスムーズに処理できるのでしょうか。 マクロを使う場合はどのような方法が良いのでしょうか。 データ数は1000行程度、各行の25個のセルに≪VLOOKUP≫関数が入っています。

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • 【VBA】シートを別ブックにコピーして保存したい

    8つのシートのうち、 Sheets("マクロ") を除くすべてのシートを新規ブックにコピーし、ダイアログボックスを開いて名前を付けて保存させる→Thisworkbookを上書き保存せずに終了し新規ブック画面へ移動する マクロを作成したいのですが、どの様にロジックを組めばよいでしょうか。

  • マクロで他ブックを開きデータを取得する方法について

    BOOK1は集計表でシートは1枚です。BOOK2はデータ入力シートで50位のシートが含まれています。 BOOK1からマクロでBOOK2を開き、各シートにあるデータをBOOK1(集計表)の所定のセルへ表示させようと考えています。例えば「BOOK2のSheet2のセルC6のデータをBOOK1のセルF8へ、Sheet3のセルC6のデータをBOOK1のセルF12へというように順次50枚のシートに入力した各データをBOOK1の集計表に表示させる予定です。どのようなマクロ構文にしたら良いのでしょうか? ご教授よろしくお願いします。

  • エクセルでのグラフコピー

    5シート構成のブックのうち4シート目にグラフがあります。このグラフの元データは5シート目にあります。この2シート(4,5シート目)をCOPY(シートを選択してCOPYをつくるでbook1へCOPYして別名保存)して公開データにするマクロをおぼえさせたのですが グラフのデータが 元のブック(5シート構成)のデータを参照する形になってしまいます。元データもコピーしているのにbook1の2シート目のデータを使わない。 手動で元データを修正することはできますが マクロでするには元データを再設定してやるしかないのですか?  

  • Excel VBAで他のブックを選択する方法を教えてください。

    こんにちは。VBA初心者です。 ブックを2つ開いた状態で、 マクロを保存してあるブック〔Book1〕から、 毎回ブック名が異なる[Book2]の選択されている2枚のシートを新しいブックに(仮Book3)コピーしたいのですが、どのように記述したらよいのでしょうか。(選択されるシートも毎回異なります。) 特に教えていただきたい部分は、 1.マクロが記録されているBOOK1以外のBookを操作する方法。 2.私以外の方が利用する為、Book1に保存したマクロから実行させる予定なのですが、Book1を毎回開いて実行させる方法がベストのやり方なのでしょうか。 マクロの記録では下記の感じになります。 Sub Macro4() Windows.Arrange ArrangeStyle:=xlVertical Windows("Book2.xls").Activate Sheets(Array("Sheet3", "Sheet4")).Select Sheets("Sheet4").Activate Sheets(Array("Sheet3", "Sheet4")).Copy End Sub 宜しくお願い致します。

  • excelでマクロシートをコピーしたとき

    excelでbook1のsheet1のセルA1に「1」を入力→プリントアウト→A1に「11」を入力→プリントアウト・・・以下「31」まで繰り返し。 というマクロが組んであります。 (ボタンにマクロが登録されています。) このシートをbook2にコピーをしたときに マクロを実行する(ボタンを押す)とbook1が開いてしまいます。 これをbook1を開かずにbook2でマクロを実行するには どのようにしたらよいでしょうか。 book2でマクロを作成し直して さらにボタンにマクロを登録していますが、 bookの数が多いのでけっこうな手間になります。 簡単な方法があれば教えて下さい。

専門家に質問してみよう