• 締切済み

エクセル2010または2007でのVBA

初めまして。 早速ですがエクセルにて、プロジェクト管理票を作っております。 エンジニアが作った作業工程計画のエクセルブックをプロジェクトの通し番号をつけて保存し、 これまでのプロジェクト分すべてを1つのフォルダに保管しています。 その後総務で、この作業工程計画エクセルから、コピー&ペーストでデータを引っ張ってきているのですが、 この作業をVBAで自動化するには、どのようにコードを書けば宜しいでしょうか? ちなみに、コピペするセルは、書かれている情報すべてです。 ですが、あるものはセルA1からG21まで、あるものはA1からC6までしかありません。 よろしくご教示ください。

みんなの回答

  • yy_kd
  • ベストアンサー率25% (5/20)
回答No.3

No.3 です。総務が作ったABCD.xls に エンジニアが作ったABCD.xlsを張り付けることはわかりました。総務のABCD.xlsのFolderとエンジニアが作ったABCD.xlsのFolderの2か所に各々のFileが存在するわけですね。 総務のFolderとエンジニアのFoldeのディリクトリが変更することがないならば各々のディリクトリは実行マクロのシートに記載できますね。 エンジニアの作ったABCD.xlsのデータの存在するシート名はどうなっていますか?、ABCD.xlsが単ページの場合は問題ありませんが複数ページの場合、例えばSheet1のまま、1番目のシートにデータのみを記載しているとか、読み込みたいシートには何らかの名前が付いているとか・・・複数ページで保存されている場合は読み込むべきシート名の取得が必要になりますね。 又総務作成のABCD.xlsにデータを張り付ける際の貼り付け方ですが、総務作成のページと同じページの中に張り付けるのか、または別ページを作成して張り付けるのか・・・など マクロを作成する際に決めておかなければならない事がたくさんありますね。総務作成のデータの同じページの総務作成データの次の行に張り付けるとか 1行空けた下に張り付けるとか・・・ これらは、マクロ作成前に決めておかないとやり直しばかりになってしまいます。

soregashi2210
質問者

お礼

ありがとうございます!伺います!

  • yy_kd
  • ベストアンサー率25% (5/20)
回答No.2

総務が作ったExcelFileとエンジニアが作ったExcelFileはProject名が一緒ですよね。 とすると2つのFileは別のFolderに格納されていますよね。 やりたいことは、例えば【検索マクロ】.xlsというマクロを作ったとします。 【検索マクロ】.xls 内にABCDというProject名を記載して実行ボタンを押したら、 エンジニアが作った ABCD.xls を開いて、データ記載部分全体をコピーして総務作成のABCD.xlsに貼り付ける。 これも二つのケースが考えられます。総務作成の同じシートのデータ欄外に張り付ける場合と 別シートを作って張り付ける場合など・・・ それとも、総務作成のFile名は 【総務】ABCD.xls その他は【部署名】ABCD.xlsなどとして同一Folderに格納しているのでしょうか?マクロでBookを開いてコピーペーストは難しいことではありませんが、File名のつけ方規則とか、Fileの格納状況がわからないとご希望通りにはならないと思います。 もう少し、具体的にご説明いただけませんか?

soregashi2210
質問者

補足

ご丁寧なお返事ありがとうございます。 舌足らずで申し訳ございません。 まず、 >やりたいことは、例えば【検索マクロ】.xlsというマクロを作ったとします。 【検索マクロ】.xls 内にABCDというProject名を記載して実行ボタンを押したら、 エンジニアが作った ABCD.xls を開いて、データ記載部分全体をコピーして総務作成のABCD.xlsに貼り付ける。 ここまではおっしゃる通りです。 その後ですが、総務はエンジニア作成のエクセルを元に社内管理票を作ります。 総務もエンジニアもプロジェクトごとに新たなエクセルブックを作成します。 保存するフォルダも別々です。 エンジニアはプロジェクト名をファイル名して「エンジニアフォルダ」に保存。 総務は1プロジェクトごとに新たなブックを作成し「総務フォルダ」へ保存。 こんな感じでお分かり頂けますでしょうか?

  • yanhua
  • ベストアンサー率72% (508/701)
回答No.1

要件定義などと言うほどですからシステム開発のなんたるかはお分かりでしょう。今回のご質問は規模は小さいなりに、業務の仕組みのシステム化の一環です。 以下は私の感じたことです。 1.やりたいことが的確に表現できていない。早速No1.さんの誤解を招き無駄な手間をおかけしています。 2.エクセルやVBAを分かっていれば、違った質問の仕方になるだろう。 3.質問の前提として、自分の力量を述べていません。エクセルの知識がどの程度か、VBAの経験はどうか、そもそも自分でプログラムするのだろうか。 4.どうしてここに質問したのかな。 等々です。 元来、社内のシステム開発部門に相談する筋のことです。その上で、あなたが自ら開発に当たり、具体的な部分で相談事項が出て、ここで知恵を借りるのならば、回答も得られやすいでしょう。現状では、要求定義(これすら不備ゆえにこんな回答を書いているわけですが)を投げてプログラム作成を依頼しているのと変わりません。 私も誤解しているかも分かりませんが、材料はこんなことでしょうか。 ・VBAで他ブックのシートをコピーしてくる方法 http://www.excel.studio-kazu.jp/kw/20030812103955.html ・ブックやシートのコピー http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20009.html ・ブック・シート操作編 http://www.happy2-island.com/excelsmile/smile03/capter00100.shtml ・始点セル から 終点セル までのセル範囲」を取得 http://officetanaka.net/excel/vba/cell/cell10.htm [エクセル  vba  他のブック シートをコピー セルの操作]のようなキーワードを組み合わせて検索すれば、例題が沢山あります。エクセル、Vbaの学習サイトもいくつもあります。 作業にかかればエラーも沢山遭遇するでしょうが、たいていのものはWEBで事例と解説が見つかります。エクセル、Vbaを分かっていて、プログラム作成とデバッグ/テストの基本を体験として持っていれば今回の案件は何とかなります。 デバッグ/テストに伴うファイルの破壊や、完成したマクロの保守管理対策を怠りなく、社内の専門家の知恵をお借りなさい。 どこかに書いてあります: 「まずExcelの機能に精通するべきです。Excelの機能を理解しないでマクロなんか作れません。難解なVBAを学習するよりも、Excelのショートカットキーを覚える方がはるかに簡単です。また、同様の理由から、Excelに精通していない人からVBAを習ってはいけません」 私も精通してはいませんのでご用心!

関連するQ&A

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • VBA作製ができません。どなたか教えてください。

    エクセルVBA作製ができません。どなたか教えてください。 会社の作業単純化のためにVBA作製しようと思ったものの、うまくできません。出来る方ならすぐ出来てしまうのではと思い質問させていただきます。 作りたいのは1つのファイル「Book1」にあるデータをコマンドボタンを押すと「Book2」にコピーさせたいのですが、 条件がありまして、 「Book1」には横並びに5個のセルに数字がそれぞれ入っていたり、いなかったりするのですが、 5個のうちいちばん左のセルに数字が入っていたら実行、入っていなかったらその右のセルにセルを移動するという式if then?で場合分けをしたいです。 そして、もし実行ならその数字や他の任意のA1、G4、H6(ちなみA1、G4、H6は文字)など指定したセルをコピーして「Book2」にペーストしたいです。 しかしそこでペーストする先の指定したセルに文字が入っていたらその 下のセルにペーストという条件も加えたいです。ここでloopを使う? コピーペースト出来たら、また、「Book1」のいちばん左の右のセルに数字が入っているかどうかでコピーペーストをするという作業を繰り返したいです。なのでいちばん最初にFor Nextで5回繰り返す式を入れる? 要はBook1の5個の数字を参照していってセルに入力されていれば 数字や他の文字をBook2にペーストしたいんです。どなたかVBAの式を教えてください。 宜しくお願いします。

  • エクセルVBAについての質問です。

    エクセルVBAについての質問です。まったくの初心者です。 閉じたままの他のブックBのSheet1 C7セルからデータを取得して作業中のブックA Sheet1 H7セルに記入したいのです。 どうかご指導お願いいたします。 まったくの初心者で、本やネットを漁っているのですが、何日かかってもできません。センスないんだと思いますが、あきらめきれずの質問です。アドバイスいただけると幸いです。

  • Excel VBAで他のワークブックからのコピぺの仕方について

    Excel VBAで開いている全てのワークブックから決められたセルの中身とそのシート名をそれぞれ決められた一つのワークブックにコピぺする マクロを作りたいのですが、どうやって作って良いのかが分かりません。 例えば、 Sub Mac() For i = 1 To 100 Workbooks("Book1.xls").Worksheets("sheet1").Range(Cells(2108, 2), Cells(3108, 2)).Cut Destination:=Workbooks("Book1.xls").Worksheets("sheet1").Cells(13, 2) End Sub みたいにすれば良いと思うのですが、開いている全てのファイルからのコピぺってどうやって記述するのでしょうか? 何卒よろしくお願い致します。

  • エクセルの関数、VBA? に関する質問です

    エクセルの関数、VBA? に関する質問です 添付画像のように、 複数のセルの内容(C列)を一つのセルに改行して 入力する場合(M列)はどのような関数にすればよいのでしょうか。 そもそも関数では実現できないのでしょうか 現状はいったんテキストエディタにコピペした後に 再度それを一つのセルにペーストしています。 何か良い方法があれば、教えて頂けると助かります。 よろしくお願いします。

  • エクセル内でのVBAの質問です。

    閲覧ありがとうございます。 エクセルの作業ファイルにてVBAのコードを作成しているのですが、中々思う通りに実行できないので、ご教授願います。 実行したい内容については以下の通りです。 ボタン1を押すと(添付画像上段のブック)、マイドキュメント内にある「データ転送ソフト2」という名前のブックを開き、そのブックのシート「A」内(添付画像下段)の、ボタン1を押したシートのF1セル(添付画像上段のブック)と同じ文字(日付)の列と"う"と入力された行の交差したセルの数値(添付画像下段の紫色のセル)をコピーして、ボタン1を押したシートのT4のセル(転送値1:の右隣にある薄緑のセル)に貼り付ける作業が行えるコードをご教授願いたいです。 要約しますと、作業しているシートのボタン1を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。

  • VBA コピー&ペースト

    次の作業をVBAでマクロを組みたいのですが、どのような構文にすればよいでしょうか。VBA初心者のため、お知恵を拝借させてください。 [目的] 1.ブックA(コピー先)に設定したハイパーリンク先のブックB(コピー元)へジャンプ 2.ブックBへジャンプ後、特定のセルの値をコピー 3.コピーした値をブックAの特定セルへペースト 4. 1.~3.の作業をリピート 対象は、上の作業が未完(ブックAのペースト先のセルがブランク)のもの [詳細] ・ブックB(リンク先)の保存先はサーバー ・リンク先はブックBの特定のシート ・ブックAで設定したハイパーリンクのセルの値がリンク先のシート名 ・ブックBは複数、リンク先のシートも複数(ハイパーリンクごとにリンク先が異なる) ・ブックBにはマクロが設定、開くたびにマクロ有効無効のメッセージ(Excel2003のため) ・コピペする項目は3つ ・ブックA,Bともに開いた状態で、2.~4.のリピートというマクロでも構いません。 以上ですが、他に情報が必要でしたらお申しつけください。 よろしくお願いいたします。

  • Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?

    windowsXPを使用しています。 Excelで同じフォームのブックが300ほどあります。 この300のブックのA1というセルに、全て同じ値を入力したいのですが、 効率的な方法がありましたら教えていただけますでしょうか。 (社員1名につき1つのブックがあるのですが、社名変更のため、 全てタイトルを変更しなければなりません。 なお、全社員ともフォームは同じですが、ブックの数や、シート名は異なります。) 同じブック内での複数シートへの入力であれば、 作業グループで一度にできると思いますが、異なるブックの場合、 作業グループも使えないため、どうすればよいのか分かりません。 やはり全てのブックを開いて一つ一つコピペするしかないのでしょうか? お忙しいところ恐れ入りますが、よろしくお願いいたします。

  • excel VBA ブック間コピーについて

    evcel VBA初心者です。 ブック間コピーの方法を探っていて以下の質問にたどり着きNO.2 NO.3の回答を試してみましたが、値のみしかペーストされません。 書式を含めすべてコピペする方法を教えて下さい。 Range("**")を変えればいいというものなのでしょうか。 また、NO2の回答のコードの中で sFindbook の変数はどこで宣言しているのでしょうか。 http://okwave.jp/qa/q5261470.html

  • エクセル VBA 条件つきの印刷

    エクセルVBAにおいて、 例えば「セルA1が空白でないシートすべてを印刷する」 このようなコードは可能でしょうか? よろしくお願いします。 (エクセル2000)

専門家に質問してみよう