• 締切済み

EXCEL VBA 別ファイルのフィールドをコピー

EXCEL VBA初心者です。 有識者の方、ご教授願いします。 EXCELVBAで、別ブックのシートから特定のフィールドを特定の行までコピーしたいのですが、そのマクロを教えていただきたいのです。 例えば、基本となるブック「サンプル」のsheet1が以下のようだったとします。    A   B     C     D     E     F・・・ _______________________ 1|番号 日付 企業名 電話番号 備考・・・ また、元となるブック「A」のsheet1が以下のようだったとします。    A   B     C     D     E     F・・・ _______________________ 1| 2|作業一覧 3|コード  事業社名 開始年月日  チェック     備考・・・ 4|00122 ユースノウ 1978/12/21    あり     担当:森田 5|00335 路医ポット 2004/11/1     なし     会議依頼あり(3/4日 石田確認済み) ・・・ 行いたいマクロは、まず、「サンプル」のSheet1を開き、A2にアクティブセルを移動し、マクロを実行すると、 ダイアログボックスに「指定ファイルを選択してください。」と出て、通常のファイルを開くと同じような作業をし、「A」をしています。「次へ」コマンドボタンをクリックすると今度は、「番号」と対応するフィールドフィールド名を選択してください」と出て「A」の3行にあるフィールド名一覧から「コード」を選択し、実行をすると、次は「日付」と対応するフィールド名を選択してください。」と出て・・・あとは順々に「サンプル」にあるフィールドの対応するものを聞きます。そして実行をすると、00122からのレコードがコピーされる、というマクロです。 ちなみに、「サンプル」の電話番号のように、元のフィールドに同じようなフィールドがないものもありますし、逆に、「A」のチェックのように、コピーするひつようのない、フィールドもあります。 よろしくお願いします。

みんなの回答

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.1

私も初心者のようなものですが。。。 マクロ(vba)そのものはそれほど難しくないように思います。 が。 説明文を読んでいると、「それ本当にいるの?」みたいな仕様というか、操作が見受けられます。 例えば「次へ」コマンドボタンを押して、その次もフィールドを指定したら次に進めて・・・みたいな。 ボタンをひとつ押したら、自動でさくさく進もうよ、と手抜き好きな私は思ってしまいました。 例には無さそうですが、番号というのはなんでしょう。 フィールド名はすべてのブックで統一されていないのでしょうか。 それから「特定の行」を特定する手段は? とりあえず起動時から・・。 sheet1のイベントモジュールで、A列のセルから起動。 そこから先はユーザーフォームで作成。

関連するQ&A

  • エクセルVBA初心者です

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

  • エクセルVBAでコピー

    エクセルVBAでのコピーについての質問です。 ブック1 とブック2があります。 ブック1 のSheet1 内にマクロ含むワークシートを 新規ブックにファイル名を指定して 下記のようなプログラムでコピーしようとすると (標準モジュール1の内容) Sub newfilesave() MsgBox "デスクトップの「○○」フォルダに控え○○_日付時間.xlsxファイルを生成します。" Sheets("受付仕分リスト").Copy ActiveSheet.Cells.Copy ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveSheet.Range("A1").Select 'マクロなしのエクセルデータとして名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 ActiveWorkbook.SaveAs _ Filename:="C:\Users\user\Desktop\○○\○○_" & Format(Now(), "yyyymmdd_hhmm"), _ FileFormat:=xlOpenXMLWorkbook End Sub Sheet1 内にマクロの内容までコピーされてしまいます。 ブック1のレイアウトや書式などはそのままに マクロ部分だけを取り除いてコピーするには どのような流れでプログラムすればいいでしょうか? よろしくお願いします。

  • 【エクセル】新しいブックにコピーするVBA

    急ぎで必要で、困ってます。 ”一覧”と”原本”という2つのシートがあります。 ”一覧”シートのA55~H78には、最大24個の商品の情報が縦に入力されています。 A列はメーカー名、B列は商品名・・・H列はフラグ(”0”か”1”のどちらか) ”原本”シートは1商品1枚の注文書みたいなものです。 G13に商品名、G16にメーカー名・・・といった情報を入力する欄が設けられています。 そのエクセルに対し、以下の処理を実行してくれるVBAを作りたいです。 新しいブックを開き、そこに”原本”シートをコピーする。但し、以下の条件がある。 ・”一覧”シートのH列のフラグが ”1”と入力されている商品の情報が入力されている状態の  ”原本”シートが新しいブックにコピーされる様にしたい。 例えば、”一覧”シートに、以下の情報が入力されているとします。 A55=株式会社斎藤 B55=鈴木チョコ ・・・ H=1 ↓ Hが1なので、G13=鈴木チョコ、G16=株式会社斎藤と入力されている”原本”シートを 新しいブックにコピーします。 この処理を繰り返して、H列に”1”と入力されている情報分の”原本”シートが 新しいブックにコピーされる様にしたいです。 以上、丸投げになってしまうので、大変恐縮なのですが、分かる方がいましたら返信お願いします。

  • ExcelのVBAについて

    ExcelのVBAについて VBA全くの初心者です。 以下のような処理を行いたいのですが、どなたかご教授をお願いします。 以下のように支店(1)~(3)のシートがあります。 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、   一致しない行を不一致データシートに出力する もう一つ別のマクロで、 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、、   一致する行を一致データシートに出力し、D列に対象データがあるシート名を表示する   ※可能でしたら、E列に対象データがある行番号も表示する -------------------------------- シート名:支店(1) A      B     C 商品No   商品名   備考 011    商品A   備考A 009    商品B   備考B 015    商品C   備考C -------------------------------- シート名:支店(2) A      B     C 商品No   商品名   備考 008    商品A   備考A 023    商品B   備考B 004    商品C   備考C -------------------------------- シート名:支店(3) A      B     C 商品No   商品名   備考 007    商品A   備考A 033    商品B   備考B 018    商品C   備考C -------------------------------- シート名:入力シート A      B     C 商品No   商品名   備考 ※ここに複数行入力する -------------------------------- シート名:不一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される -------------------------------- シート名:一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される

  • 別ブックのシート名称一覧を作成したい

    excel2016 自ブックの中でシート名一覧作成というマクロはwebにあったのですが、 他ブックのシート名一覧を自ブックへ作成というのを どの様に対応したらよいのかがわかりません。 やりたい内容は、 ①自ブックを開く(シート収集するファイル) ②file_openマクロ実行  c:\workにあるfile.xlsmのブックを開く(file.xlsmが他ブック) ③file.xlsmの全シート名称一覧を  自ブックのsheet1シートのA1セルから下へシート名称記載させる。  file.xlsmに登録されているシート名称は日付と時刻と時刻  202110070830 202110071700  … みたいな12桁のシート名称になっている ③自ブックsheet1のB1からB列最終行(A列にデータがある最終行)  まで必要なセルに1を設定 ④自ブックB列でセルに1があれば、他ブックの対象シートを自ブック  へコピー 以上①~④をマクロで対応したいのですが ③の内容がわからないのでベタでマクロ教えていただきたく、よろしくお願いします。

  • VBA セルの値と同じ、別ブックのシートに貼付け

    いつもお世話になります。 シートをコピーし、閉じたブックのシートに貼付けしたいのですが、詳細は次の通りです。 ブックA…マクロがあり、Sheet1のA1プルボタンから店舗名を選択すると、その店舗の在庫が表示されます。 ブックB…シートが100枚ほどあり、シート名が各店舗名になっています。 ブックAを開き、A1から店舗を選択し、在庫数を手入力で修正し、マクロボタンを押したら、ブックB(閉じた)の同じシート名に、値で貼付ける ブックAは上書きしないで閉じる 決算時期で困っています。よろしくお願いします。

  • エクセル ブック間コピー マクロ

    ブックA(ブック名は固定)のシートA(シート名は毎回違います)を ブックB(ブック名は固定)の一番左へコピーしたいのですがうまくいきません。 動作 :シートAでマクロを実行しブックBへシートのコピー(挿入)します。 まず第一段階のブックAのシートAをブックBへのコピーがうまくいきません。 シートAが固定シート名ならコードは Sheets("A").Select Sheets("A").Copy Before:=Workbooks("B.xls").Sheets(1) ですが・・・・ Sheets("A").SelectをWith ActiveSheet.Selectにすれば良いのですか? 申し訳ないのですが、後教授お願いします。

  • Book間でのコピー

    エクセルで以下の処理を実行するマクロを知りたいのですが。 Book1とBook2が開いています。 Book2のSheet1のA1~A10を、Book2のSheet1のA1~A10にコピーします。 この処理を任意の2つのBook間で実行するためにはどんなマクロになるでしょうか。(Book3とBook5で行ったり、Book25とBook46で行ったり等) アクティブになってないBookからアクティブになっているBookにコピーするようにしたいのですが。 宜しくお願いします。

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

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

  • エクセルでシートコピーするマクロについて

    マクロ初心者です。宜しくお願いします。 エクセルで一つのSheet1があります。そのSheet1には、一覧表があります。マクロを実行することで、Sheet1の後ろにSheet2を作成して、Sheet1と同じ一覧表をコピーして表示できるようにし、それを、マクロを実行すれば、ワークシートが一枚追加され、Sheet2のシート名になり、シートを追加する度にシート名が、Sheet3、Sheet4、Sheet5となるようにしたいです。 分かりづらい説明ですが、宜しくお願いします。

専門家に質問してみよう