- ベストアンサー
〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転
〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。
- iiji4547
- お礼率100% (4/4)
- マーケティング・企画
- 回答数2
- ありがとう数24
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 あまり綺麗ではありませんが、作ってみました。 以下のSub Main()からEnd Subまでを新規モジュール挿入後、貼りつけて実行してください。 なお、第一シートが"元データ"、第二シートが"集計表"というシート名にしています。 データの行数、列数などが固定になっているので、Curentregionなどを使って可変に対応できるようにしたほうが良いでしょう。 Sub Main() Dim rwIndex, colIndex, colIndex2 For rwIndex = 1 To 5 '集計表の列番号を初期化する。 colIndex2 = 1 For colIndex = 1 To 11 With Worksheets("元データ").Cells(rwIndex, colIndex) '1行目か1列目、2列目の場合、コピーする。 If rwIndex = 1 Or colIndex = 1 Or colIndex = 2 Then Worksheets("集計表").Cells(rwIndex, colIndex2).Value = .Value '集計表の列番号を増加する。 colIndex2 = colIndex2 + 1 'その他はデータがある場合だけ、表題(1列目)を結合してコピーする ElseIf .Value > 0 Then Worksheets("集計表").Cells(rwIndex, colIndex2).Value = Worksheets("元データ").Cells(1, colIndex).Value & "V/" & .Value & "A" '集計表の列番号を増加する。 colIndex2 = colIndex2 + 1 End If End With Next colIndex Next rwIndex End Sub では。
その他の回答 (1)
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 扱うデータのイメージが分かりづらいので、サンプルのデータを例示して説明したほうが回答が付きやすいと思います。 では。
お礼
有難うございます。 ご教示のお陰で製品リスト(集計表)が完成しました。 修正部分で若干手こずりましたが、反面勉強になりました。 今後もVBAをマスター出来るように頑張りたいと思います。 また、御指導頂ければ幸いです。 取り急ぎ、御礼まで。
補足
説明不足で失礼しました。結論的には下記の通りです。 サンプルとしては、第1シートを第2シートの様に纏めたい。(列のズレは、ご容赦下さい) 第1シート A B C D E F G H I J K 1 名称 製品名 5 6 7 8 9 12 15 24 48 2 aa あ 10 1 5 3 bb い 3 1 4 cc う 8 2 2 8 5 dd え 4 第2シ-ト A B C D E F G H I J 1 名称 製品名 ch1 ch2 ch3 ch4 ch5 ch6 2 aa あ 5V/10A 12V/1A 24V/5A 3 bb い 6V/3A 15V/1A 4 cc う 5V/8A 6V/2A 12V/2A 24V/8A 5 dd え 5V/4A
関連するQ&A
- 既存シートにデータ追加したい
■マスターシート 日付 商品 個数 付加データ ↓ (項目列ごとに下記追加されていきます) (付加データだけは月末に一括手入力) ↓ ■納品書TMPシート ■日付名シート納品書(印刷用) --------------------------- 現在、マスターシートから、納品書TMPシートを使い、 同ブック内に日付名シートの納品書(付加データ除く)をVBAで作成しています つまり、付加データだけが入力されてない納品書が日付名シートで作成されます 月末の処理都合上、マスターシートへ付加データ一括入力して 既に作成されている各日付名シートに追加転記させたいのです マスターデータの項目日付と日付名シートが一致の場合、 その日付の付加データを抽出し、該当の納品書へ転記する 関数VLOOKUPなどで、各納品書に表示はできるのですが、 都合上月初にマスターデータをクリアしなければならず、 そうした場合、表示エラーになるので、転記データを残す方法を VBAで考えています。 For文などで固定日付でのシート抽出は何とか出来るのですが、 さらにマスターシートの日付も動くので?入れ子?ループ?悩んでいます どなたか助けて下さい
- 締切済み
- Excel(エクセル)
- 他シートのデータを参照させたい(excel2007
excel2007において、他のシートのデータを参照させる方法についてどなたか教えてください。 =sheet1!a1 のように入力して他のシートのデータを表示させる方法は使っているのですが、複数のセルのデータを参照させるのに手間取っています。 たとえばsheet1にある5行5列(25セル)のデータをsheet2の5行5列(25セル)に表示させたいときは、25個のセルすべてに上記のように入力すればいいのですが、参照させたい元の25セルのどこかにセルの結合が使われていると、sheet2においても同じように結合させなければsheet1と同じ表示になりません。 sheet1でセルの結合が使われたときはsheet2においても同じように「セルの結合も自動で参照させる(連動させる)」ということは可能なのでしょうか? 詳しい方いらっしゃいましたら、よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
- マクロ:他シートにデータをコピーしたい
Excelのマクロについてです。 シート1にデータが有り、その中のB列に「済」と記入されている行のみ シート2にコピーして転記したいのです。 これだけなら簡単なのですが データ内には複数行にまたがってのセル結合がされてあったり 図形描写やテキストボックス等も混ざってあります。 それらもまとめてコピーしたいのですが、マクロで何とかなるのでしょうか?
- ベストアンサー
- Excel(エクセル)
- 【Excel VBA】条件に合うデータの転記
Excel2003を使用しています。 2つのシート間の特定の範囲内で、条件に合うデータを転記したいのですが… Sheet1(A1:C41) ← 一定範囲 Sheet2(選択範囲) ← 都度、選択範囲取得 Sheet2の選択範囲内で、A列とB列の値が、Sheet1のA列とB列のそれぞれの値と一致した場合、Sheet1のC列の値をSheet2のE列に転記したいのですが、こういう場合、コードはどのように書いたらいいでしょうか? 条件に合ったものを順に転記していくコードは書いたことがあるのですが、特定の範囲内ということや、転記する場所が指定されたりしていて、つまづいています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAとデータの転記について
今エクセル2003で、以下の上段画像のようなエクセルデータを作成しました。 上段(シート1)が、各商品に対する評価表なのですが、 そこに評価のあった件数が入力されています。 今、シート1の商品名から評価の不可までを、 VBAでシート2に以下のように転記をしたいのです。 先月はたまたま26件だったのですが、 毎月の商品の件数が、決まっていないので、連番記載とセルごとの処理 ループの使い方がよくわかりません。 評価欄は1件でも件数があれば、○印を転記して、空白はそのままで 転記したいのです。 データが多くなるにつれ手作業が大変になってきました。 VBAがまったくわからず、申し訳ありませんが よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- データの検索(EXCEL2000)
おじゃま致します。 シ-ト内のデータの検索をしたいのですが、 [編集]-[検索]でするような検索を以下のように シート内だけで行うにはどうしたらよいでしょうか? シート内のセルA1に検索したいデータを入力したら、 該当データのセルにジャンプさせたいのです。 セル、オブジェクトへマクロ登録はなんとかできますが マクロ自体の作成スキルがありませんので、 どなたか、マクロの作成をお願いできないでしょうか。 また、マクロ以外でできるならアイデアをお願いします。
- ベストアンサー
- オフィス系ソフト
- <ACCESS VBA -> EXCEL>getObjectしたEXCELファイルのシートを指定したい
ACCESSのVBAマクロでEXCELファイルを指定してデータを取得しようとしています。 GetObject("C:\ファイル名.xls", "Excel.Sheet") でEXCELファイルを取得するまでは良いのですが、そのファイルのシートを指定する方法がわかりません。 基本かもしれませんが、ご教示をお願いします。
- ベストアンサー
- オフィス系ソフト
- 【VBA】別シートを検索して該当があれば『●』表示
VBA初心者(独学中…)です。 別シートからVLOOKUPの要領でデータの抜き出しをしたいです。 関数を試しましたが、データ量が多く、かなり時間が掛かってしまうため、 できればマクロで完了させたいと思っています。 ご教示のほど、何卒よろしくお願いいたします。 ------------------------ 帳票の仕様 ------------------------ ■Excel2010 にて ・Sheet1~9のJ列に『検索コード』があります。 ・Sheet10は【コードマスタ】シートです。 ・行はシートにより増減あり。 ・列はSheet1~9で共通、項目・並び等 変更なし。 Sheet10も項目・並びは変更しません。 ------------------------ やりたいこと ------------------------ Sheet10からSheet1~9へ、VLOOKUPのように該当データを抽出・転記したい。 ------------------------ 具体的には… ------------------------ Sheet1~9の『検索コード(J列 ※データは[セル:J2]以下~)』を元に、 (1)Sheet10のA列を検索 ⇒ 該当があればSheet1~9のK列へ (2)Sheet10のB列を検索 ⇒ 該当があればSheet1~9のL列へ 『●』が表示されるようにしたい。 ------------------------------------------------------------------------ 試しに(1)の動作テスト用に、以下を書いてみましたがうまく動作しませんでした。 (★の部分がエラーになります) 正しく動作させるには、どのようにしたらよろしいでしょうか。 (実際のコードを教えていただけますと、大変有難いです…) ================================================================ Sub コードマスタからK列値をVLookup() Dim tbl As Range Set tbl = Worksheets(10).Range("A:B") Dim key As Long key = Range("J2").Value ★ On Error Resume Next Dim ret As String ret = WorksheetFunction.VLookup(key, tbl, 1, False) On Error GoTo 0 Range("K:K").Value = ret End Sub ================================================================
- ベストアンサー
- Excel(エクセル)
- 違うExcelシートのデータのコピー方法
こんにちは。 初めて投稿致します。 Excelのシート1(B行)のデータを違うシート2(B,C,D行)に結合して貼り付けようとすると。 シート1(B行)のデータがシート2の(B,C,D行)←(3行にまたがる)が起きてしまい、手動でシート2の(B,C,D行)の結合を行っております。 どなたか、もっと簡単にExcelのシート1(B行)のデータを違うシート2(B,C,D行)に結合する方法を教えて頂けないでしょうか。 宜しくお願い致します
- 締切済み
- その他(ビジネス・キャリア)
- EXCEL VBA テーブル間のコピー
お世話になります。 VBA初心者です。 Excelで、元データであるSheet1にあるテーブルのB列をSheet2にあるテーブルのA列に転記したいと思います。このとき、Sheet2のテーブルにはデータが入っており、そのデータと重複するものを除外したものだけをSheet2テーブルの続きから入力させるにはどうしたらよいでしょうか? なにとぞご教授のほど、お願いいたします。
- ベストアンサー
- Visual Basic
お礼
早速のアドバイス有難う御座いました。 解り易くて助かりました。 夏休み等もあり御礼が遅れました事をお詫び致します。 引き続きVBAの勉強を進めたいと思います。 以上