• ベストアンサー

VBAでの説明がわかりません

以下のコードは、都道府県ごとに1枚のデータシートを作成する処理なんですが、コードが1行づつどんな作業を意味しているのかがわかりません。1行ごとにどのような処理をしているのかの説明をよろしくお願いします。長文で申し訳ありません。 Sub まとめ() Dim i As Integer 'カウンタ変数iの宣言 Dim n As Integer  Dim MyS1 As Worksheet 'ワークシート型オブジェクトMyS1を宣言 Dim MyC As Worksheet Worksheets.Add before:=Worksheets("全国") ActiveSheet.Name = "data" Set MyS1= Worksheets("data") With Worksheets("全国") MyS1. Range(MyS1.Cells(1,1),MyS1.Cells(11,12))=.Range(Cells(1,1),.Cells(11,12)).Value End With i=12 For Each MyC In Worksheets If MyC.Name<> "data" Then n = 12 MyS1.Cells(i,1)=MyC.Name i=i+1 Do While MyC.Cells(n,2).Value<>"" MyS1.Range(MyS1.Cells(i,1),MyS1.Cells(i,12))=MyC.Range(MyC.Cells(n,1),Mc.Cells(n,12)).Value i=i+1 n=n+1 Loop End If Next Myc End Sub

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >このコードは参考書に載っていたコードです 直接の回答ではありませんが、そのコードは、どうもエラーが出るのではありませんか? 何箇所かミスがあるようです。これは書き移したときのミスかもしれませんが、そのコードのレベルですと、だいたい、VBA 1年生レベルの人のものだと思います。 一応、そこかしこを直せばよいとは思いますが、その説明だけは、勘弁してほしいですね。自分のコードの説明すら説明しきれないのに、まして、他人のコードの説明というのは出来るものではありません。 変なことを言うかもしれませんが、たぶん、コーディングというのは、脳の別の場所で作っているらしいのです。だから、自分の作ったものは、映像的には見えていても、説明するとなると、別の能力を使わなくてはならないので、倍以上の労力が必要とされるのです。英語を理解することと、翻訳することは別なことと同じことなのです。 以下は、下に向かって、空白を探すということでは、意味が違ってしまいますが、このように書き換えてみました。 -------------------------------------------------------- Sub まとめR()   Dim i As Long   Dim sh As Worksheet      With Worksheets.Add(Before:=Worksheets("全国"))     .Name = "data"     .Range("A1:L11").Value = Worksheets("全国").Range("A1:L11").Value   End With      For Each sh In Worksheets     If sh.Name <> "data" Then       With Worksheets("data")         'data シートの最後尾の次の行を探す         i = .Range("A65536").End(xlUp).Offset(1).Row         .Cells(i, 1).Value = sh.Name         sh.Range("A12", sh.Range("A65536").End(xlUp)).Resize(, 12).Copy         .Cells(i + 1, 1).PasteSpecial xlPasteValues       End With     End If   Next sh   Application.CutCopyMode = False End Sub   

nodoame4
質問者

お礼

丁寧に説明をして頂いて、本当に感謝しています。 ありがとうございました。

その他の回答 (2)

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

>このコードは参考書に載っていたコードです コードの目的は書かれていないのでしょうか? 或いはサポート的な対応は行なっていないのでしょうか?

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

>以下のコードは、都道府県ごとに1枚のデータシートを作成する処理なんですが 参考書かサイト等で公開されているコードですか? それとも、ご自身で使用されているものですか?

nodoame4
質問者

補足

このコードは参考書に載っていたコードです

関連するQ&A

専門家に質問してみよう