【第2回Excelマクロ】セルの値の取得・入力【ほぼfor/if文】

今度は、セルの値を取得したり、セルに値を入力したりしてみましょう。

まずは、前回作った「Book1」ファイルのSheet1にテストデータを作りましょう。

ついでに、前回コードを書いたMsgBox “Hello World"の先頭にシングルクォーテーション「’」をつけましょう。

'MsgBox "Hello World"

コメントアウトといって、そのコードが無効になります。メモ書きにも使えて便利です。

セルの値の取得

まずは以下のコードを入力しましょう。

MsgBox ThisWorkbook.Sheets("Sheet1").Cells(1, 1).Value

実行するとA1セルに入力されていた「果物」とメッセージが出るはずです。

セルを値を取得する際、基本的に以下の情報が必要になります。

  • どのブック(開いているExcelファイルに限る)か→ThisWorkbook
  • どのシートか→Sheets(“Sheet1")
  • どのセルの値か→Cells(1, 1).Value

このコードの場合は、

  • ThisWorkbook→このコードが書かれているブック
  • Sheets(“Sheet1")→シート名が「Sheet1」のシート
  • Cells(1, 1).Value→1行目の1列目のセルの値(A1のセル)

を意味します。

また、ブックやシートやセルなどの操作したい対象をオブジェクトといい、これらを「.(ドット)」で連結します。

日本語的な意味をもたせるならば、「~の」という意味になるでしょうか。

さらに末尾の「Value」はプロパティといって、そのオブジェクト(今回の場合セル)が持つ情報を引き出せます。

ThisWorkbookのSheets(“Sheet1")のCells(1, 1)のValue(値)の情報を引き出しますよ、といったかんじです。

セルに値を入力

前のコードをコメントアウトし、次のコードを入力しましょう。

ThisWorkbook.Sheets("Sheet1").Cells(5, 1).Value = "めろん"

実行すると、A5セルにメロンと入力されます。

今回のコードは以下のセルを指定し、入力しています。

  • ThisWorkbook→このコードが書かれているブック
  • Sheets(“Sheet1")→シート名が「Sheet1」のシート
  • Cells(5, 1).Value→5行目の1列目のセルの値(A5のセル)
  • = “めろん"→セルの値に「めろん」という文字を入力

ThisWorkbookのSheets(“Sheet1")のCells(5, 1)のValue(値)に「めろん」という文字を入力した、といったかんじです。

最後に

セルの値を取得・入力できるようになりました。が、そのたびに

ThisWorkbook.Sheets(“Sheet1").Cells(5, 1).Value

と書くのは結構面倒くさいですよね。次回はその問題を解決する「変数」についてまとめます。

ExcelExcelマクロ

Posted by プーレ