• ベストアンサー

EXCEL VBA プログラミング

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

  • maaso
  • お礼率50% (1/2)

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

  • ベストアンサー
  • kon555
  • ベストアンサー率52% (1753/3364)
回答No.2

>>コピー先のエクセル名(.xslx)に何と書いたら良いかわかりません http://officetanaka.net/excel/vba/file/file02.htm  の解説みたいな形になりますが、この冒頭に書かれたコードの内容として『OpenFileName』という名前の変数に、ダイアログで指定したファイルのパス(保存場所とファイル名)を格納しています。 OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")  の部分です。  そして次の行で、その格納したパスを開いています。 Workbooks.Open OpenFileName  です。  このパス名からブック名を取り出してもいいですし http://officetanaka.net/excel/vba/tips/tips78.htm  開いたブックを格納する方法もあります http://officetanaka.net/excel/vba/file/file05.htm  これで材料は揃っていると思いますので、あとは試行錯誤してみて下さい。

maaso
質問者

お礼

とても良く理解できました!ありがとうございます!試行錯誤して組み立ててみます。

その他の回答 (1)

  • kon555
  • ベストアンサー率52% (1753/3364)
回答No.1
maaso
質問者

補足

参考情報、ありがとうございます。教えて頂いたページを見てみました。 別のブックにコピーという処理の方ですが、毎回違う先を選択してコピーしたいので、コピー先のエクセル名(.xslx)に何と書いたら良いかわかりません。。

関連するQ&A

  • 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 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

  • 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でシートを新規ブックとして、名前を付けさせて保存するには

    こんばんは。質問です。 シートを新規ブックにコピーしたいのですが、その際に 名前を付けて保存のダイアログを出して、名前のボックス に「シート名」だけを表示させておいて、後は操作者が任意に 名前を追加できるようにして保存するようにするにはどのように したらいいでしょうか? 例えば、別ブックに保存したいシートが「売上」というシート名 であればダイアログボックスに「売上」と表示させ、操作者は任意で 「売上4月」などとするようにして保存したいということです。 よろしくお願いします。

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

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

  • エクセルVBAについて

    今、エクセルVBAでマクロの作成を行っています マクロの中で、作業用に別なエクセルとシートを作成したのですが マクロの最後でその作業用のエクセルとシートを削除する用にしました。 その際に、エクセルがメッセージボックスが開き 『このエクセルブックを閉じますか』や『このシートを削除してよろしいですか』などと聞いてきます。 このボックスを出さないように強制的に消すことは出来ないのでしょうか? 出来るのであれば、やり方を教えてください。

  • エクセル-別のbookで同様のマクロ実行

    エクセル-別のbookで同様のマクロ実行 最初あるBook1に入っているmacro1はそのbook1のsheet1を処理するように作成しました。 次にBook1を開いたまま、Book2を開きそのsheet1に対してmacro1と同等の機能を実行したい場合は通常どうするのでしょうか。 (1) Book2にBook1のマクロをコピー (2) book2のマクロを開き、表示されるBOOK1 macro1を実行する。 (2) 場合でもうまくいくのでしょうか。Sheet1に対してやりたいことの論理は同じとします。試してみたらといわれそうですが、まず識者の説明をお聞きしたいのです。

  • マクロ無しのbookでVBAを使う方法

    マクロなしbook1があります。 このbook1をマクロで参照するには 1.book1で、VBAを使う 2.VBAで新規にbook2を開き、book1のシートを取り込む の方法を考えました。 2.は多分できるかとおもうのですが、1.のbook1でVBAを開く方法がわかりません。 VBAはずいぶん昔なので、今はVBAを使うBOOKの作り方をネットで学んだところです。(excelの神髄など) 1.の方法の手順を教えてください。 この手順がわかる良いサイトが教えていただけてもよいです。

  • エクセル(2010)VBAの初歩的な問題

     エクセルVBA初心者です。エクセル2010で、マクロを記録したファイルを"△△.xlsm"として保存し、一旦そのファイルを閉じて、再度そのファイルを開いて、[開発]タブ-[コード]グループ-[マクロ]ボタンを押したときに出る「マクロ」ダイアログボックスで、保存した「マクロ名」が選択されている状態で、 [実行] [ステップ イン] ボタンは有効なのですが、 [編集] [作成] [削除] [オプション] の四つのボタンがグレーアウトして、押せる状態ではありません。また、この状態で、[実行]ボタンを押してみても、 「セキュリティの設定により、マクロが無効にされました。マクロを実行するには、このブックを再度開いて、マクロを有効にするようにする必要があります。マクロの有効化と詳細については、[ヘルプ]をクリックしてください。」 と表示されて、実行されません。[ヘルプ]ボタンを押してみると、長い説明が出てきましたが、そのどれも実行してみましたが、問題が解決されないで前に進めません。  どうすれば、一旦ディスクに保存したマクロ記録ファイルを再び開いて、マクロの操作の続きをできるようになるでしょうか。よろしくお願いします。

  • エクセルVBA初心者です

    参考書籍を教えてください 質問1 会社でエクセルマクロを使う機会が増えました。大抵のことはマクロの記録で対応してますが、細かいファイル操作が出来ません。VBAを勉強する必要があると思ってます。何か良い参考書はありませんか? 質問2 ブックAでマクロAを作りました。マクロAの中で、ブックBのマクロBを実行させてます。マクロBは、計算結果としてブックB上に新シートを作成し、終了します。その後、マクロAに戻りブックBの新シート上のセル2個を選択しコピーし、ブックAにてペーストさせようとしてます。 マクロAはブックA上で「マクロの記録」で作成しました。 実行させると、マクロBの終了時点でストップするようです。 何がマズイのでしょうか?

専門家に質問してみよう