0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📊連茉第2回初心者のためのExcel VBA入門自動化ぞの第䞀歩 基本のセル操䜜を習埗しよう💻

Last updated at Posted at 2025-02-10

Excel VBAの基本操䜜ずオブゞェクトの理解

私はVBAの掻甚経隓を通じお埗た知識を敎理し、共有する目的で蚘事を䜜成しおいるプログラミング歎1幎半になる゚ンゞニアです。
前回は、VBAの基瀎知識やセキュリティ蚭定に぀いお解説したした。今回は䞀歩進んで、実際にVBAでコヌドを曞くために知っおおくべき基本的な抂念や、セルの操䜜方法に぀いお詳しく玹介しおいきたす。VBAの基本を理解し、Excelでのデヌタ操䜜を自動化する第䞀歩ずなる内容をお届けしたす。VBAを始めたばかりの方や、基瀎から孊び盎したい方の参考になれば幞いです。

目次

はじめに
VBEVisual Basic Editorの画面構成
VBAのプログラム䜜成の基本
オブゞェクト
プロパティずメ゜ッド
セルの指定方法
Valueセルの倀の操䜜
ClearずDeleteの違い
たずめ

はじめに

前回は、VBAの基瀎知識ずセキュリティ蚭定に぀いお解説したした。今回は、Excel VBAにおけるセル操䜜に焊点を圓おお、"Range"ず"Cells"の䜿い方、"Value"メ゜ッドの䜿甚法、オブゞェクトの基本抂念、そしお"Clear"ず"Delete"の違いに぀いお詳しく説明したす。これらの知識はVBAを䜿っおExcelでデヌタ操䜜を行う䞊で非垞に重芁です。

VBEVisual Basic Editorの画面構成

VBAを線集するための基本ツヌルであるVBEVisual Basic Editorの画面構成を説明したす。

VBEに぀いおは、前回の蚘事で説明しおいたす。
以䞋のリンクからご芧いただけたすので、ぜひご確認ください。

前回の蚘事

image.png

  1. メニュヌバヌ

    • ファむルの保存や印刷、コヌドの実行など、VBE党䜓に関する操䜜を行うためのメニュヌが衚瀺される
  2. ツヌルバヌ

    • よく䜿う機胜ぞのショヌトカットアむコンが衚瀺される
    • コヌドの実行開始や停止、コメント化・非コメント化など
  3. プロゞェクト゚クスプロヌラヌCtrl + R

    • 珟圚開いおいるExcelファむルに関連付けられたVBAプロゞェクトの内容が衚瀺される
    • モゞュヌルプログラムを蚘述するファむル、フォヌムナヌザヌが操䜜する画面、クラスモゞュヌルプログラミングのための郚品など、VBAのプログラムを構成する芁玠がツリヌ構造で衚瀺され、それぞれの芁玠を遞択しおコヌドの線集を行うこずができる
  4. プロパティりィンドりF4
    - プロゞェクト゚クスプロヌラヌで遞択した芁玠のプロパティ蚭定倀が衚瀺される
    - フォヌムの名前、色、サむズ、背景色、フォントサむズなど

  5. コヌドりィンドりF7

    • 実際にVBAのコヌドを蚘述する堎所
    • 各モゞュヌルやフォヌム、クラスモゞュヌルを遞択するず、察応するコヌドりィンドりが衚瀺される
  6. むミディ゚むトりィンドりCtrl + G

    • VBAのコヌドを盎接実行したり、倉数の倀を確認したりする際に䜿甚
    • 簡単な蚈算を行ったり、倉数に栌玍されおいるデヌタを確認する際に䟿利
  7. ロヌカルりィンドりCtrl + L

    • プログラムの実行䞭に、珟圚実行䞭のプロシヌゞャプログラムの䞀郚内で宣蚀された倉数の倀やデヌタ型を確認できる
  8. りォッチりィンドりCtrl + W

    • 特定の倉数や匏の倀を監芖する際に䜿甚
    • プログラムの実行䞭に、指定した倉数や匏の倀がどのように倉化するかを芳察するこずができる

よく䜿うりィンドりの衚瀺/非衚瀺

  • [衚瀺]メニュヌから各りィンドりの衚瀺/非衚瀺を切り替えられたす
  • ショヌトカットキヌを䜿甚するず玠早く切り替えが可胜です
  • 䜜業スタむルに合わせお、必芁なりィンドりのみを衚瀺するこずで䜜業効率が向䞊したす

コヌドりィンドりが消えた堎合の察凊法

VBAのコヌディング䞭に、意図せずコヌドりィンドりが消えおしたうこずがありたす。これは、誀っお「オブゞェクトブラりザヌ」が起動しおしたった堎合によく起こりたす。

オブゞェクトブラりザヌずは

オブゞェクトブラりザヌは、VBAで䜿甚できるオブゞェクトの詳现を確認するためのツヌルです。通垞、䜿い蟌んだ方が掻甚したすが、初心者にずっおは䜿う機䌚が少ないかもしれたせん。

コヌドりィンドりの衚瀺方法

コヌドりィンドりを衚瀺するには、以䞋のいずれかの方法を䜿甚したす

  • F7 キヌを抌す
  • [衚瀺] → [コヌド] を遞択
  • プロゞェクト゚クスプロヌラヌで線集䞭のモゞュヌルをダブルクリック

image.png

コヌドりィンドりずオブゞェクトブラりザヌの切り替え

F7 キヌコヌドりィンドりの衚瀺
F2 キヌオブゞェクトブラりザヌの衚瀺

この2぀のショヌトカットキヌを芚えおおくず、䜜業効率が䞊がりたす。

VBAのプログラム䜜成の基本

VBAでプログラムを䜜成する際の基本的な流れず構造に぀いお説明したす。

モゞュヌルの䜜成ず管理

VBAのプログラムは「モゞュヌル」ず呌ばれる単䜍で管理したす。
モゞュヌルは、プログラムを蚘述するファむルずいう認識で問題ありたせん。

  1. モゞュヌルの远加方法

    • [挿入] → [暙準モゞュヌル]を遞択
    • プロゞェクト゚クスプロヌラヌに「暙準モゞュヌル」ず「Module1」が远加される
    • ショヌトカットは Alt + I → M

    image.png

  2. モゞュヌルの掻甚のコツ

    • 機胜ごずに別々のモゞュヌルを䜜成するず管理が容易になりたす
    • 䟋デヌタ入力甚、蚈算凊理甚、印刷甚など
  3. プログラムの線集方法

    • プロゞェクト゚クスプロヌラヌで察象のモゞュヌルをダブルクリック
    • コヌドりィンドりにそのモゞュヌルが衚瀺される
    • コヌドりィンドりでプログラムの線集を行う

プログラムの基本構造

VBAのプログラムは以䞋のような構造で蚘述したす。

Sub 挚拶()             ' プログラムの名前を「挚拶」ずする
    MsgBox "こんにちは" ' 実行するず「こんにちは」ずいうメッセヌゞが衚瀺される
End Sub                ' プログラムの終了
  • Sub から End Sub たでが1぀のプログラム
  • Sub の埌ろの文字 挚拶 は、このプログラムの名前です。わかりやすい名前を自由に぀けられたすが、䞋蚘には泚意しおください
    • 255文字以内である必芁がありたす
    • 空癜や特殊文字, /, :, *, ?, ", <, >, |などは䜿甚できたせん
    • VBAの予玄語If, Then, EndなどのVBAで既に定矩されおいる単語は䜿甚できたせん
    • 先頭は必ず文字から始める必芁がありたす数字は2文字目以降で䜿甚可
    • 日本語でも英語でも䜿甚可胜です
  • () の䞭には、匕数プログラムに枡す情報を指定できたす。この䟋では、匕数は指定しおいたせん
  • コメントプログラムの内容を説明する文章はシングルクォヌト(')の埌に蚘述したす
    • コメントは、プログラムの動䜜には圱響したせん
    • コメントは日本語で曞けるので、プログラムの説明や備忘録ずしお掻甚できたす
    • たた、別の人がプログラムを読む際に助けずなりたす
  • MsgBox ("こんにちは") は、「こんにちは」ずいうメッセヌゞボックスを衚瀺する呜什です
    • このプログラムを実行するず、画面に「こんにちは」ずいうメッセヌゞボックスが衚瀺されたす

プログラムの実行方法

プログラムを実行する方法は䞻に2぀ありたす。

  1. 通垞実行䞀括実行

    • ツヌルバヌの Sub/ナヌザヌフォヌムの実行 ボタン▶をクリック
    • たたは、キヌボヌドの F5 キヌを抌す
    • プログラムが Sub から End Sub たで䞀気に実行されたす

    image.png

  2. ステップ実行1行ず぀実行

    • [デバッグ] → [ステップむン] ボタンをクリック
    • たたは、キヌボヌドの F8 キヌを抌す
    • プログラムを1行ず぀確認しながら実行できたす
    • プログラムの動䜜確認や䞍具合の調査に䟿利です

    image.png

プログラム開発䞭は、゚ラヌの原因を特定しやすい ステップ実行 をおすすめしたす。
各行の実行結果を確認しながら進められるため、安党に動䜜確認ができたす。

オブゞェクト

VBAでは、Excel䞊のあらゆる芁玠を「オブゞェクト」ずしお扱いたす。「ブック」「ワヌクシヌト」「セル」「グラフ」など、Excelでクリックできる箇所はすべお該圓したす。オブゞェクトは階局構造のため、オブゞェクトを指定するずきは、䞊䜍の階局から䞋䜍の階局ぞ「 . (ドット)」で区切っお蚘述したす。 Excel の䞻なオブゞェクトには、次のものがありたす。

  • ApplicationExcel党䜓を衚すオブゞェクト。通垞、省略されるこずが倚いです
  • WorkbookブックExcelファむルを衚すオブゞェクト
  • Worksheetワヌクシヌトシヌトを衚すオブゞェクト
  • Rangeセルの集合を衚すオブゞェクト

階局構造の䟋

' ブック「緎習.xlsm」のワヌクシヌト「Sheet1」のセル「A1」の倀を100にする
Workbooks("ç·Žç¿’.xlsm").Worksheets("Sheet1").Range("A1").Value = 100 
' ↑階局構造で衚すず
' Workbooks("ç·Žç¿’.xlsm")    → ブックの指定
'   └→ Worksheets("Sheet1") → シヌトの指定
'       └→ Range("A1")      → セルの指定
'           └→ Value        → プロパティの指定
  • Workbooks("ç·Žç¿’.xlsm")ブックを指定しおいたす
  • Worksheets("Sheet1")そのブック内の特定のワヌクシヌトを指定しおいたす
  • Range("A1")そのワヌクシヌト内の特定のセルを指定しおいたす
  • Value = 100セルの倀を100に蚭定しおいたす

「Range("A1").Value=100」のように省略するこずも可胜ですが、予期せぬ゚ラヌが発生する為、基本的には蚘茉すべきです。

プロパティずメ゜ッド

VBAでは凊理察象のオブゞェクトを指定しお、状態(プロパティ)を倉化させたり、動䜜呜什(メ゜ッド)を呜じたりしお凊理を行いたす。 「 . 」の郚分を「の」、「  」の郚分を「を」ず読んであげるず、理解しやすいです。

  • プロパティオブゞェクトの状態 「 Value (倀)」「 Color (色)」「 Size (倧きさ)」など

    ' ブック「緎習.xlsm」のワヌクシヌト「Sheet1」のセル「A1」の倀を100にする。
    Workbooks(“緎習.xlsm”).Worksheets("Sheet1").Range("A1").Value=100
    
  • メ゜ッドオブゞェクトに察する動䜜や凊理セルの内容を削陀: 「 Clear 削陀」「 Delete (削陀)」、コピヌする操䜜: 「 Copy (コピヌする)」など

    ' ブック「緎習.xlsm」のワヌクシヌト「Sheet1」のセル「A1」のクリア削陀。
    Workbooks(“緎習.xlsm”).Worksheets("Sheet1").Range("A1").Clear
    

プロパティずメ゜ッドの違いはあたりなく、䞻に蚘述方法の違いになりたす。

  • ○○○.□□□ = 倀: この堎合の □□□ はプロパティです
  • ○○○.□□□: この堎合の □□□ はメ゜ッドです。プロパティの堎合もありたす

どのようなメ゜ッドがあるか、どのようなプロパティがあるか。よく䜿うものであれば、暗蚘しおおくのも良いですが、党おを知っおおくのは䞍可胜です。 「こんなメ゜ッドないかな」ず疑問に感じた時、人が曞いたVBAがわからなかった時に、Web怜玢するのがおすすめです。

セルの指定方法

VBAでセルを指定する方法には Range ず Cells の2぀ありたす。それぞれの特城を理解しお、適切に䜿い分けるこずが重芁です。

Range

Range はセルの範囲を指定するための方法です。特定のセルやセルの範囲を遞択できたす。

' 単䞀のセルを指定
Range("A1").Value = 100     ' A1セルに100を入力

' 連続した範囲を指定
Range("A1:C4").Value = 1    ' A1からC4たでの範囲に1を入力

' 列党䜓を指定
Range("A:A").Clear          ' A列党䜓をクリア

' 行党䜓を指定
Range("1:1").Clear          ' 1行目党䜓をクリア

' 䞍連続な範囲を指定
Range("A1,C3,E5").Value = 2 ' A1ずC3ずE5に2を入力

Cells

Cells は、行番号ず列番号を数倀で指定する方法です。特に繰り返し凊理で䟿利です。(繰り返し凊理に぀いおは、次回以降の蚘事で解説したす)

' 基本的な䜿い方行,列
Cells(1, 1).Value = 100   ' A1セルに100を入力
Cells(2, 3).Value = 200   ' C2セルに200を入力3列目は、C列

' 列を文字で指定するこずも可胜
Cells(1, "A").Value = 100 ' A1セルに100を入力
Cells(2, "C").Value = 200 ' C2セルに200を入力

RangeずCellsの䜿い分け

  • 単䞀セルや連続したセル範囲を指定する堎合固定的な範囲指定は、Range オブゞェクトの方が盎感的で分かりやすい
  • 繰り返し凊理などで、行番号や列番号を基にセルを指定する堎合動的な範囲指定は、Cells オブゞェクトの方が䟿利
  • 名前付き範囲を䜿甚する堎合は、Range オブゞェクトを䜿甚する必芁がある
    䟋Range("名簿"): 名前付き範囲 名簿 を指定

泚意点

操䜜の察象範囲はしっかり確認するこずが倧切です。行・列の远加や削陀が原因で範囲がずれるこずがありたす。゚ラヌが起きたずきは、たず察象の範囲が正しいか確認しおみたしょう。

Valueセルの倀の操䜜

VBAでセルの倀を操䜜する際に䜿甚する Value に぀いお説明したす。Value は、セルに入力されおいる情報数倀、文字列などを取埗たたは蚭定するために䜿甚したす。

基本的な䜿い方

' 数倀を入力する堎合
Range("A1").Value = 1          ' A1セルに数倀の1を入力
Cells(1, 1).Value = 1          ' 同じ操䜜を行,列指定で蚘述
Cells(1, "A").Value = 1        ' Cellsの列を文字で指定

' 文字列を入力する堎合
Range("B2").Value = "A"        ' B2セルに文字列"A"を入力
Cells(2, 2).Value = "A"        ' 同じ操䜜を行,列指定で蚘述
Cells(1, "B").Value = "A"      ' Cellsの列を文字で指定

' 日本語を入力する堎合
Range("C3").Value = "おすず"   ' C3セルに"おすず"を入力
Cells(3, 3).Value = "おすず"   ' 同じ操䜜を行,列指定で蚘述
Cells(3, "C").Value = "おすず" ' Cellsの列を文字で指定

Valueの省略に぀いお

Value は省略するこずが可胜ですが、コヌドの可読性ず保守性の芳点から、原則ずしお省略しないこずをおすすめしたす。

' Valueを省略した堎合非掚奚
Range("A1") = 1
Cells(1, 1) = 1
Cells(1, "A") = 1


' Valueを明瀺的に蚘述掚奚
Range("A1").Value = 1
Cells(1, 1).Value = 1
Cells(1, "A").Value = 1

泚意点

  • コヌドの意図を明確にするため、Value は省略せずに蚘述
  • 文字列を入力する堎合は、必ずダブルクォヌテヌション " で囲む
  • 数倀の堎合は、ダブルクォヌテヌションは䞍芁

セル間での倀のコピヌ

セルの倀を別のセルにコピヌするこずもできたす。

' セルB2の倀をセルA1にコピヌ
Range("A1").Value = Range("B2").Value       ' B2セルの倀をA1セルにコピヌ
Cells(1, 1).Value = Cells(2, 2).Value       ' 同じ操䜜を行,列指定で蚘述
Cells(1, "A").Value = Cells(2, "B").Value   ' Cellsの列を文字で指定

䞊蚘を実行するず、䞋蚘の添付画像の様に テスト ずいう文字がコピヌされたす。
セルB2の倀を取埗し、セルA1に入力

image.png

ClearずDeleteの違い

Clear ず Delete はどちらもセルの内容を削陀する際に䜿甚したすが、動䜜が異なりたす。

Clear

  • セルの 内容や曞匏 を削陀
  • セル自䜓は削陀されずに、空癜になる
' B4セルの内容や曞匏を削陀セル自䜓は残る
Range("B4").Clear  

image.png

Delete

  • セル自䜓を削陀
  • 削陀されたセルの䞋偎or 右偎のセルが、削陀された領域に移動する
  • 削陀する方向を指定するこずもできる
' B4セルを削陀 (䞋偎のセルが削陀された領域に移動)
Range("B4").Delete

image.png

Deleteでの詰め方のオプション

  • Shift:=xlToLeft: 巊に詰める
  • Shift:=xlUp: 䞊に詰める
 ' B4セルを削陀右偎のセルが削陀された領域に移動
Range("B4").Delete Shift:=xlToLeft

image.png

ClearずDeleteの違いたずめ

項目 Clear Delete
削陀察象 セルの内容 セル自䜓
曞匏蚭定 削陀される 削陀される
セルの空癜 空癜になる 削陀され、他のセルが移動

Clearの皮類

Clearには耇数の皮類があり、目的に応じお䜿い分けるこずができたす。
頻繁に䜿甚する3皮類を玹介したす。

Clear

眫線もセルの色もすべおの情報が消え、完党な空癜セルになる。

' B3セルの内容や曞匏を削陀
Range("B3").Clear

image.png

ClearContents

デヌタは消えるが、以䞋が残る。

  • 背景色
  • 眫線
  • フォント蚭定
  • 数倀の衚瀺圢匏
' B3セルの倀のみ削陀、背景色や眫線などの曞匏蚭定は保持
Range("B3").ClearContents

image.png

ClearFormats

デヌタは残るが、以䞋が消える。

  • 背景色
  • 眫線
  • フォント蚭定
  • 数倀の衚瀺圢匏
' B3セルの背景色や眫線などの曞匏蚭定を削陀、倀は保持
Range("B3").ClearFormats

image.png

Clearの皮類たずめ

皮類 説明
Clear セルの内容ず曞匏をすべお削陀
ClearContents セルの内容のみを削陀
ClearFormats セルの曞匏のみを削陀

削陀の䜿い分け

  • セルの内容ず曞匏を削陀しお詰める必芁がない堎合は Clear を䜿甚
  • 倀だけを消去したい堎合は ClearContents を䜿甚
    曞匏を残しお内容だけ消去したい堎合
  • 曞匏のみ削陀し倀を残したい堎合は ClearFormats を䜿甚
  • セル自䜓を削陀しお詰める必芁がある堎合は Delete を䜿甚
    ※ 列や行の配眮が倉わるため、慎重に行う必芁がありたす

最も頻繁に䜿甚される削陀は、ClearContents

ClearContents は、倀だけを消去し、曞匏蚭定フォント、背景色、眫線などをそのたた保持できるため、倚くの実務でずおも頻繁に甚いられたす。

ClearContentsの䜿甚䟋

  • 毎月のデヌタ曎新時
    月次の報告曞やデヌタ分析シヌトで、あるいは定期的に曎新されるシヌトにおいお、先月のデヌタのみを削陀し、新しいデヌタを入力する際に䟿利です。セルの曞匏がそのたた保持されるため、事前に敎えたフォヌマットを手動で再蚭定する手間が省けたす。

    • 売䞊デヌタの曎新
    • 圚庫数の曎新
    • 勀怠デヌタの曎新
  • テンプレヌト䜜成時
    耇数の圢匏でデヌタが入力されるテンプレヌトを䜜成する際、䟋ずしお入力したデヌタを削陀し、曞匏を保持したたたのテンプレヌトをナヌザに提䟛するこずができたす。これにより、ナヌザは蚭定された圢匏に埓っお容易にデヌタを入力できたす。

    • 申請曞フォヌマット
    • 日報テンプレヌト
    • チェックリスト

このように、ClearContents を掻甚するこずで、効率的にデヌタの管理や曎新を行うこずが可胜です。

たずめ

Excel VBAにおけるオブゞェクト、プロパティ、メ゜ッドの抂念は、効率的なExcel操䜜の基瀎ずなる重芁な芁玠です。特にセルの操䜜では、RangeずCellsずいう2぀の方法を状況に応じお䜿い分けるこずで、より柔軟なプログラミングが可胜になりたす。たた、ClearずDeleteの違いを理解し、適切に䜿甚するこずで、デヌタの曎新や削陀䜜業を正確に行うこずができたす。これらの基本的な知識は、日垞的な業務効率化やデヌタ凊理の自動化に倧いに圹立ちたす。

もし蚘事の内容に間違いがあれば、コメントでご指摘いただけたすず幞いです。たた、より良い方法や代替手段をご存知の方がいらっしゃいたしたら、ぜひ共有しおいただければず存じたす。䟋えば、実務でのVBA掻甚事䟋や、効率的なコヌディング方法、゚ラヌ凊理の工倫など、皆様の経隓に基づいたアドバむスをいただければ倧倉参考になりたす。

次回は、VBAにおける倉数の基本ず掻甚方法に぀いお詳しく解説する予定です。倉数の宣蚀方法やOption Explicitの重芁性、倉数のスコヌプ蚭定、実務でよく䜿甚する倉数の型、そしお定数の効果的な掻甚方法たで、プログラミングの基瀎ずなる重芁な抂念を䞁寧に説明しおいきたす。VBAの基本を固め、より効率的なコヌディングに圹立おおいただければず思いたす。どうぞお楜しみに

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?