気ままに趣味旅行

面白いコト「拡がる/拡げる」

エクセルVBA 集計ファイルの作り方③

どうもhiroakiです。

先日、下記の記事を書きました。

コードの中身が分からない人のために、解説していきたいと思います。

hiroakies.hatenablog.com

hiroakies.hatenablog.com

 

オブジェクトについて

オブジェクトとは、セルやワークシートなどのVBAで操作したい対象のことです。

例えば、セルならRange(セル番地)やCells(行,列)で表します。

セルC4(オブジェクト)を表す場合は、Range("C4")、Cells(4,3)となります。

また、Range(セル番地)は、Range("A1:B4")のように範囲を表すことも可能です。

 

親オブジェクト.子オブジェクトについて

親オブジェクト.子オブジェクトについて説明します。

先ほど、セルC4オブジェクトを示すために、Range("C4")の形を示しましたが、このコードだけを書くと、どのシートのC4か分からない場合があります。

その場合、「シート3のC4セル」のように階層構造で表らわさなければいけません。

 

コレクションについて

コレクションとは、オブジェクトが複数集まったものをいいます。

実は、先ほど説明したRange()はCells()のコレクションともいえます。

またCellsのみのでもコレクションとなります。

他にも、ワークシート1、2、3…となったものの集合体がWorksheetsです。

参考:https://excel-ubara.com/excelvba1/EXCELVBA358.html

 

プロパティ、メソッドについて

プロパティは状態のこと。例えばフォントや文字サイズ、色、罫線などです。

たとえばセルの値のプロパティはValueです。

  1. Range("C4").Value

このコードで、セルC4の値を取得できます。

  1. Range("C4").Value = "文字を代入します"

このように、オブジェクトのプロパティにイコールを書いて、文字を入れることもできます。これを代入と呼びます。代入は左側にいれると覚えておきましょう。

 

メソッドはオブジェクトの動作を表します。コピーや貼り付けといった作業を行います。

  1. Range("C4").Copy

以上、オブジェクト.プロパティ、オブジェクト.メソッドの基本的な形を覚えておいてください。

 

内容へ

では、中身に入っていきます。

  1. Worksheets("出力").Cells.Clear
  2. Worksheets("出力").Range("A1") = "ファイル名"
  3. Worksheets("出力").Range("B1") = "貼付け内容"
  4. Worksheets("作業").Activate
  5. name_worksheet = Worksheets("作業").Range("C1")
  6. hanni = Worksheets("作業").Range("D1")

1行目はワークシートコレクションのうち、出力シートのセルコレクションを消す(Clearメソッド)ということをやっています。Clearメソッドでは書式を含めて全て消すことができます。

2行目は出力シートのA1セルにファイル名という文字を入れています。3行目も同様です。

4行目は作業シートをアクティブにする(Activateメソッド)ということをやっています。いま作業シートを開いた状態になっています。

5行目では、name_worksheet変数に作業シートのC1セルに入っている内容を代入します。いまは「2班」と入っています。

6行目では、hanniに作業シートのD1セルに入っている内容を代入します。いまは「C16:H25」と入っています。

 

今回はここまで~

今回はここまでとします。

 

基礎的なことなので、さっと進めましたが、もっと詳しく知りたい場合は、コメントなどくだされば解説したいと思います。

次回からも続きを解説していきます。

 

では。