- ベストアンサー
〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転
〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。
- みんなの回答 (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
お礼
早速のアドバイス有難う御座いました。 解り易くて助かりました。 夏休み等もあり御礼が遅れました事をお詫び致します。 引き続きVBAの勉強を進めたいと思います。 以上