• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:抽出→書込み? コピー→貼付? 教えてください。)

VB初心者の方へ!Excelでのデータの抽出と書き込み方法を教えてください

このQ&Aのポイント
  • ExcelのVBA初心者の方に向けて、Sheet1からデータの抽出とSheet2への書き込み方法を教えてください。
  • 具体的には、Sheet1のデータをSheet2で科目別に集計し、見積書としてまとめたい場合のマクロの作成方法について教えてください。
  • 質問者はVBの勉強を始めたばかりで、試した方法ではうまく処理できなかったため、知恵を貸していただきたいとのことです。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

見積もり表の構成を1行にするのであれば データ > フィルター > フィルターのオプション あたりでやれますが 2行構成にしてしまうとVBAになるでしょう 『Microsoft Scripting Runtime』に参照設定しておいて Sub MacroFruit()   dim arData, sv   dim dict as new Scripting.Dictionary   dim n as integer   dim oSrc as Range, oDest as Range   arData = Sheets("Sheet1").Range("V2:V71").Value   for n = 1 to UBound( arData,1)     if Dict.Exists( arData( n,1 ) ) = false then       Dict.add arData( n,1 ), arData( n,1 )     end if   next   Set oDest = Sheets("Sheet2").Range("A10")   for each sv in dict     for n = 1 to Ubound(arData,1)       if arData(n,1) = sv then         Set oSrc = Sheets("Sheet1").Range("V" & n + 1 )         oDest.Offset(0,1).value = oSrc.Offset(0,1).value ' 産地         oDest.Offset(0,2).Resize(1,7).value = oSrc.Offset(0,3).Resize(1,7).value         oDest.Offset(1,0).value = oSrc.value    ' 果物名         oDest.Offset(1,1).value = osrc.Offset(0,2) ' 農家         ' 次の転記位置に更新         set oDest = oDest.Offset(2)       end if     next   next End Sub といった具合です 他のシートに関しては   arData = Sheets("Sheet1").Range("V2:V71").Value   Set oSrc = Sheets("Sheet1").Range("V" & n + 1 )   Set oDest = Sheets("Sheet2").Range("A10") の部分の V2:V71や "V" & n + 1の +1、Sheets("Sheet2")などを修正してください

wata_oc3
質問者

お礼

redfox63さん回答ありがとうございます。 思っていた通りに処理出来ました。 素人の私にとってはこれから内容を一つづつ 理解してこれらからの勉強に役立てるのが課題として 残りました。 その他の作業を含め進めていく上で私自身で解決できない課題が ありましたら、その時はアドバイスをお願いします。 本当にありがとうございます。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

シート1の1行のデータをシート2に2行で表示したいというように、 思ったのですが。。。 どのセルのデータをどこに入れていくのか?今一つわかりません。 >コピーして貼り付け 値だけで良いのであれば 例: Sheets("Shhet2").Range("A1").Value = _    Sheets("SHeet1").Range("A1").Value とすれば、シート1のA1の値がシート2のA1に代入されます。 これではまずいのでしょうか?

wata_oc3
質問者

補足

n-jun回答ありがとうございます。 内容がうまく伝わらず表現不足といいますか.... 申し訳ありません。

関連するQ&A