セルの操作③
皆様、お疲れ様です。
前回はセルの範囲指定の方法を勉強しました。
今回は行の選択や、列の選択方法について勉強をしていこうと思います!本日もよろしくお願いします!
はじめに
今回は、Selectメソッドを利用したExcelの指定した行を選択する方法について学んでいきます。
「指定したセルを選択する」では、Rangeプロパティを利用してセルを選択しましたが、行を選択する場合は、様々なプロパティを利用して選択することができます。
Selectメソッドとは
今回使うメソッドは「Selectメソッド」を使います。
Selectメソッドについてですが、RangeオブジェクトのSelectメソッドは指定されたセルを選択します。Selectメソッドには引数はありません。
Range("セル範囲").Select
Rows("行番地").Select
Range("セル範囲").EntireRow.Select
Rangeプロパティを利用して行を選択する
下記コードはRangeプロパティを利用して行を選択するコードになります。
Sub test()
Range("2:2").Select
End Sub
・実行
まずは先ほどのコードをVBEに記入していきます。

実行します。

2行目の全てに選択が行われました。
TESTプロシージャのSubステートメントに引数は設定されていません。
Rangeプロパティには、範囲を表す演算子( : )を利用して「2 : 2」の行番地を設定しています。こちらは「行(2)」の範囲を設定していますので、Selectメソッドで「行(2)」を選択します。
最後はEndステートメントを利用してTESTプロシージャを終了させます。Selectメソッドで行を選択した場合は、対象の行の左端のセルがアクティブになります。
また、Rangeプロパティは単一の行以外に複数行も選択することができます。以下はまとまった複数行を選択する事例となります。Rangeプロパティには「2 : 4」を設定しているので、実行すると2行目から4行目まで選択します。
Sub test()
Range("2:4").Select
End Sub

まとまった行以外にも離れた行も選択できます。
以下は離れた行も選択する事例です。Rangeプロパティには「2:2,4:5」を設定していますので、処理を実行すると2行目と4行目から5行目まで選択します。
Sub test()
Range("2:2,4:5").Select
End Sub

Rowsプロパティを利用して行を選択する
つづいては、Rowsプロパティを利用してExcelの行を選択するコードになります。
Sub test()
Rows(2).Select
End Sub

コードを入力しましたので、実行します。

2行目がすべて選択されました。
こちらでは、Rowsプロパティを利用した指定した行を選択しています。
Rowsプロパティには、「2」の行番地を設定しています。こちらは「行(2)」の範囲を設定していますので、Selectメソッドで「行(2)」を選択します。
EntireRowプロパティを利用して行を選択
次は、EntireRowプロパティを利用して行を選択します。
Sub test()
Range("A2").EntireRow.Select
End Sub

こちらも2行目が選択されました。
EntireRowプロパティは指定されたセル範囲を含む 1 行または複数の行全体(Rangeオブジェクト)を返すプロパティで、まずRangeプロパティで「A2」を設定していますので、「A2」セルを取得します。そして、EntireRowプロパティで「A2」セルを含む行を返すので、行(2)を取得しますので、Selectメソッドで「行(2)」を選択します。
SelectメソッドとActivateメソッドの違い
SelectメソッドとActivateメソッドは同じ処理の動作をするため非常に混同しやすいので、整理してみます。
Selectメソッドは「選択する」でActivateメソッドは「アクティブにする」処理になりますが、「選択」と「アクティブ」の違いをまず理解しましょう。
「アクティブ」とは現在操作対象そのものを指し、「選択」とは、対象の範囲になります。以下の図を見るとイメージしやすいと思いますが、現在操作可能な「アクティブ」のセルは「B2」セルになります。そして、選択されている範囲は「B2~D6」セルになります。

このように操作対象は単一ですが、選択においては複数選択することができます。メソッドでも同様にActivateメソッドは単一のセルしか扱えませんが、Selectメソッドは複数のセルを同時に扱えます。
Selectメソッドの特徴
- 複数セルを選択できる
- Selectメソッドで選択した範囲をSelectionオブジェクトとして操作できる
Activateメソッドの特徴
- 単一のセルしかアクティブにできない。
- Selectメソッドで複数選択した後にさらに単一のオブジェクトを指定できる。
最後に
今回は行の選択について勉強をしてきました。
行を選択するだけでも3種類方法があり、覚えるだけでも大変な感じですね・・・。
ただ、実際に自分でコードを入力して動くのは何回やっても感動ですね!
引き続きVBAの勉強を続けてまいりますのでよろしくお願いします。
今回の勉強はここまでにさせて頂きます。お疲れさまでした!!!!
セルの操作②
お疲れ様です。
少し時間が空いてしまいましたが、前回の続きを行っていきます。
前回はセルの指定方法を学びましたが、今回はセルの範囲指定などを学んで行こうかと思います。
本日もお願いします!
セルの範囲指定
セル範囲を指定する方法にはRangeプロパティを使用する方法とCellsプロパティを使用する方法とがあります。 RangeプロパティとCellsプロパティはいずれも指定したセル (Range オブジェクト)を返します。 セル範囲に値をセットするには"A1","E7"という具合にセルを指定後、カンマ(,)で区切る方法と、 "A1:E7"という具合にセルを指定後、セミコロン(:)で区切る方法とがあります。
以下の例では、Rangeプロパティを使用しRangeオブジェクトを取得し、Valueプロパティに値をセットしています。
Range("A1","E7").Value="Excel VBA"
Range("A1:E7").Value="Excel VBA"
では、実際に上記例を入力し、実行してみます。
カンマ( , )で区切る方法の場合
実行前

実行後

A1セルからE7の範囲すべてに文字列が挿入されました。
セミコロン( : )で区切る方法の場合
実行前

実行後

とこちらもA1セルからE7セル全てに文字列が挿入されました。
どちらも指定した範囲に入力するという目的は一緒ですが、セミコロン(:)を使用した方が、カンマ( , )の方法より入力が少なくなるので、セミコロンを使用した方法の方が楽なような気がします...。
次回は、行の指定を学んで行こうかと思います!!
ほんとに少しずつしか進められておりませんが、どうか優しい目で見ていただけると助かります。
本日もお疲れさまでした!
セルの操作①
お疲れ様です!
本日も引き続きVBAの勉強を行ってまいります。
前回は、実際にコードを入力し実行を行いました。
今回は、セルの操作について学んでいこうと思います。
セルの指定とプロパティセット
セルの指定方法にはRangeプロパティを使用する方法とCellsプロパティを使用する方法とがあります。
RangeプロパティとCellsプロパティはいずれも指定したセル(Range オブジェクト)を返します。
Range オブジェクト:セル、行、列、連続した1つ以上のセルブロックを含むセルの選択、または3D範囲を表します。
■Rangeプロパティ
Rangeプロパティを使用する方法では、"A1"、"B2"などの形式でセルを指定し、 Cellsプロパティを使用する方法では、行番号と列番号によりセルを指定します。
以下の例では、Rangeプロパティを使用しValueプロパティに値をセットしています。
①Sub test()と記入し、その間に「Range("A1").Value="EXCEL VBA"」と記入。

では、記述が出来ましたので実行を行ってみます!

Rangeはセル、列、行を指すことから、Range("A1").Value="EXCEL VBA"は
A1セルにValue(値)であるEXCEL VBAを入力と指示していた事になります。
次は、Cellプロパティを使用し実行してみたいと思います。
■Cellプロパティ
先ほどと同じように、下記文章を入力し実行をしてみます。
Cells(1,1).Value="EXCEL VBA”
①Sub test()と記入し、その間に「Cells(1,1).Value="EXCEL VBA”」と記入。

では、記述が出来ましたので実行を行ってみます!

こちらも、A1セルに表記がなされました。
Cells(1,1).Value="EXCEL VBA”に場合ですが、Cells(1,1)がちょっとわかりづらいですが、Cells(行、列)にValue(値)であるEXCEL VBAを入力と指示していた事になります。
Rangeプロパティ、Cellプロパティ共にセルを選択といった点ではどちらも同じですが、どちらが良いのかは今後学んで行こうかと思います。
今回は、若干短いですがここまでにしたいと思います。
次回はワークシートの選択などを学んで行きたいと思います!
お疲れさまでした!!
VBA コードの入力と実行~
皆様、お疲れ様です。
前回までは、VBAを使うにあたり基礎の基礎を勉強してまいりましたが、今回より実際にコード入力を行っていきます‼
コードの入力と実行
それでは実際にコードの入力を行います。
(VBEの起動を行い、標準モジュールを挿入した状態でスタートします。)
1. sub test()と入力しEnterを押します。

2.End Subが自動的に入力されます。

3.Sub test()とEnd subの間の段に、msgbox("hello excel vba world")と入力しEnterを押します。

4.正しく入力されrていれば、msgboxからMsgBoxと変化する。

では、実際に動くかテストをします。
5.▶ボタンをクリック行うか、メニューにある「実行(R)」→「Subユーザフォームの実行 F5 」をクリックします。

6.実行を行うと、結果がでます。

オブジェクトとプロパティ、メソッドについて
また、新し言葉が出てきました..。
1個ずつ勉強をしていきます。
オブジェクトとは
ワークブック(Workbook)やワークシート(Worksheet)、セル(Cell)など目に見える対象物を 【オブジェクト】と呼びます。 オブジェクトは階層構造になっており、階層をたどるようにしてオブジェクトを指定していくことにより目的のオブジェクトを取得します。
ちなみに最上位はExcel本体を示す"Application"オブジェクトです。
プロパティとは
オブジェクトごとに設定されている【属性情報】です。 オブジェクトのプロパティに値を設定することにより、オブジェクトの見た目、形が変化します。
という事ですので、実際に入力をしていきます。
下記が具体的な例になりますので、入力をおこなって、実行をしてみます。
VBEに下記コードを入力します。
Sub SetValue()
Worksheets("Sheet1").Range("A1").Value = "HELLO EXCEL VBA WORLD"
End Sub

上記コードについて、1個ずつ説明していきます。
・Worksheets:ワークシートの事
・Range:セルまたはセル範囲を表す
・Value:シートの1つのセルに入力されている値の情報を表すプロパティ。
という事なので、言葉として変換すると
「Sheet1のA1セルにHELLO EXCEL VBA WORLDを挿入」
といった意味になります。
実際にコードを実行してみます。

A1セルに文字が挿入された事が確認できます。
このようにオブジェクトのプロパティを代入するには、 ①Worksheets("Sheet1")⇒②Range("A1")⇒③Valueといった具合に階層をたどるようにして オブジェクトを指定し、最後にプロパティを指定して値を代入します。なお、プロパティの項目は、オブジェクトの種類によって異なるとの事です。
メソッドについて
メソッドはオブジェクトに動作を与えます。
オブジェクトに動作を与えるには、プロパティと同じく ①Worksheets("Sheet1")⇒②Range("A1")⇒③Select といった具合に階層をたどるようにしてオブジェクトを指定し最後にメッソド(動作)指定します。
実際に下記のコードを入力し、実行してみます。
Sub SelectCell()
Worksheets("Sheet1").Range("A1").Select
End Sub

上記コードの意味については、
・Worksheets:ワークシートの事
・Range:セルまたはセル範囲を表す
・Select:選択すること
言葉として変換すると
「Sheet1のA1セルを選択する」
といった意味合いになります。
では、入力を行ったので、実際に実行してみます。
C8セルを選択していたのが

A1セルへ自動で選択されました!

プロパティはオブジェクトの属性情報を設定する、メソッドはオブジェクトに動作を与えると憶えると良いみたいです!
ってことで、実際にコードを記入し実行していきましたがなかなか難しいですね、、。
プロパティやらメソッドやら新しい単語が出てきていますが、少しづつ、ゆっくりと進めていきます!
今回はここまでにさせて頂きます。
本日もお疲れさまでした。
VBEの使い方について
皆様、お疲れ様です!
今回は、プログラミング文を打ち込んで勉強を進めようかと考えたのですが、そもそも使い方が分からないという初歩的な事に気づいたので、VBE(Visual Basic Editor)について学んで行こうかと思います!
VBE(Visual Basic Editor)
前回、Visual Basic for Applicationsと記載をしていた画面ですが、再度調べなおしたところ、VBE(Visual Basic Editor)という言い方が正しいみたいので今後、下記画面についてはVBEと記載を致します。
(2021/12/15:前回の記事内容を修正しました。大変失礼いたしました。)

早速ですが、標準モジュールを挿入します。

上記赤枠内にカーソルを持って行った状態で、「右クリック→挿入→標準モジュール」もしくは「Alt + I + M」で標準モジュールが挿入されます。
メニューについて

メニューについてですが、どういったものがあるのか見ていきます。








まぁ、メニューは多くあるのですが、基本的には「表示」と「挿入」しか使用をしないみたいです。
VBEではほとんどの操作を「ツールバー」「右クリック」「ショートカット」から操作を行う方が効率的との事です。
ショートカットについては、下記に記載します。
VBEキーボード ショートカット
【Ctrl + ↓】 :次のプロシージャ
【Ctrl + ↑】 :前のプロシージャ
【Ctrl + PageDown】:1 画面下へ
【Ctrl + PageUp】 :1 画面上へ
【Ctrl + Home】 :モジュールの先頭に移動する
【Ctrl + End】 :モジュールの最後に移動する
【Ctrl + →】 :右の単語に移動する
【Ctrl + ←】 :左の単語に移動する
【End】 :行末に移動する
【Home】 :行頭に移動する
【Ctrl + Y】 :現在行の切り取り
【Ctrl + Del】 :単語の最後までを削除する
【Shift + F10】 :ショートカット メニューの表示
VBE メニューショートカット
ファイル
【Ctrl + S】 :上書き保存
【Ctrl + M】:ファイルのインポート
【Ctrl + E】 :ファイルのエクスポート
【Ctrl + P】 :印刷
【Alt + Q】 :終了してMicrosoft Excelへ戻る
編集
【Ctrl + Z】 :元に戻す
【Ctrl + X】 :切り取り
【Ctrl + C】 :コピー
【Ctrl + V】 :貼り付け
【Del】 :クリア
【Ctrl + A】 :すべて選択
【Ctrl + F】 :検索
【F3】 :次を検索
【Ctrl + H】 :置換
【Tab】 :インデント
【Shift + Tab】 :インデントを戻す
【Ctrl + J】 :プロパティ/メソッドの一覧
【Ctrl + Shift + J】:定数の一覧
【Ctrl + I】 :クイック ヒント
【Ctrl + Shift + I】:パラメーター ヒント
【Ctrl + Space】 :入力候補
表示
【F7】 :コード
【Shift + F7】 :オブジェクト
【Shift + F2】 :定義
【Ctrl + Shift + F2】:元の位置へ移動
【F2】 :オブジェクト ブラウザ
【Ctrl + G】 :イミディエイト ウィンドウ
【Ctrl + L】 :呼び出し履歴
【Ctrl + R】 :プロジェクト エクスプローラー
【F4】 :プロパティ ウィンドウ
【Alt + F11】 :Microsoft Excel
デバッグ
【F8】 :ステップ イン
【Shift + F8】 :ステップ オーバー
【Ctrl + Shift + F8】:ステップ アウト
【Ctrl + F8】 :カーソルの前まで実行
【Ctrl + W】 :ウォッチ式の編集
【Shift + F9】 :クイック ウォッチ
【F9】 :ブレークポイントの設定/解除
【Ctrl + Shift + F9】:すべてのブレークポイントの解除
【Ctrl + F9】 :次のステートメントの設定
実行
【F5】:Sub/ユーザー フォームの実行
上記がVBEのショートカットキー一覧となります。
エクセルもそうですが、ショートカットキー覚えとくだけでも作業効率違いますよね!
まぁ、覚えるのが大変なんですがね....。
プロジェクトが消えてしまった場合の対処法について

プロジェクトが消えてしまった場合についてですが、メニューの「表示」→「プロジェクトエクスプローラー」を選択することによって、表示が戻ります。

最初に表示されていたのが消えてしまうと、結構焦りますよね...。
上記手順を行っていただければ大丈夫ですので、そんな時こそ落ち着いて対応しましょう!
今日の勉強はここまでにします!
いやー、にしても先はなかなか遠い感じがしますね。
最近、勉強が進めてなかったのですが頑張らないとですね。
ここ数日で急に冷えてきましたが、皆様ご体調にはお気を付けください!
お疲れさまでした!!!!
VBAの基礎知識について②
前回は、VBAの基礎知識として「VBAとは?」といった事を勉強してきましたが、今回はVBAの起動方法から勉強をしていきたいと思います!!
VBE(Visual Basic Editor)の起動
Excel上でVBAのプログラミングを行うには、VBE(Visual Basic Editor)を使う必要があります。
上記ツールを使用する為には、開発タブより該当箇所をクリックし選択する必要があるのですが、もし無い場合は下記手順を行う必要があります。
●開発タブが見つからない場合の手順
- Excelを起動
- 「ファイル」を選択
- 「オプション」を選択
- 「リボンのユーザー設定」を選択
- 「開発」にチェックを入れる
上記手順を行うことにより、「開発」タブが出るようになります。
手順①~②「Excel起動~ファイルを選択」

まず、Excelを通常起動していただき、上部タブ内にある「ファイル」をクリックします。
手順③「オプションを選択」

ファイルを選択後、上記画面に移行するので、その後、最下段にあるオプションをクリックします。
手順④~⑤「リボンのユーザー設定を選択~開発にチェック入れる」

オプションを選択後、上記の画面が出てくるので、その後、赤矢印の「リボンのユーザー設定」を押すと、右側に色々と出てくるのでその中の「開発」の部分(青矢印)をクリックします。
最後に「OK」ボタンを押していただければ完了となります。

これで「開発」が追加となります。
では、早速VBE(Visual Basic Editor)を起動しましょう!!!!

起動したら上記のような画面が出てきました!
なんか、また難しいようなのが出てきましたねぇ...。

んで、次は「左側に表示されているプロジェクトウィンドウ(ファイル名やシート名がツリー状に書いてある場所)で右クリック行います。
右クリックメニューの中から、「挿入」→「標準モジュール(M)」と選択行います。

そうすると、白い画面が出てきました。
ここで、ソースコード(プログラミング言語で書かれた、コンピュータプログラムを表現する文字列(テキストまたはテキストファイル))の入力を行うみたいです!
少し調べたのですが、
VBAのプログラムについては「標準モジュール」に記述します。
「標準モジュール」は汎用的に使われるプログラムなどを記述するためのものです。
ちなみに「フォーム」はユーザー定義のフォームを記述するのに、「クラスモジュール」はクラスを定義するために使うそうです。
ここら辺の「フォーム」と「クラスモジュール」はまた後日勉強します...。
次回の勉強は、少しソースコードを入力して動かしてみようかと思います。
(出来るかな⁇ もしかしたら違う内容になるかもです...。)
いやー、にしても色々と奥が深そうですね。
調べてるうちにVBAだけでなく、PCやシステムの仕組みも知らないとなのかなぁと感じましたが、現状はVBAに集中して勉強しようかなと思います。
今日の勉強はここまでにします!
お疲れさまでした!!!!
*1:※Ofiice2019での説明となりますので、違うバージョンの方はやり方が違います。 予めご了承願います。
VBAって何? VBAの基礎知識について

VBAってなに?
今まで、仕事中にVBAが出来たらどんなにデータ収集や整理が楽になるのかと考えてきたけどそれだけで終わってしまっていたので、今回は真面目にVBAを勉強しようと思います。
VBAやマクロって用語は良く聞くけど、一体何なのか?
名前だけ知ってて、そもそも何なのかが分かっていないので調べました。
”VBA【 Visual Basic for Applications 】 とは、Microsoft Officeに含まれるアプリケーションソフトの拡張機能で、利用者が簡易なプログラムを記述して実行することで複雑な処理の自動化などを行なうことができるもの。また、そのために用意されたプログラミング言語。”
引用:IT-用語辞典 e-Works
ほう...。
よく分からん...。
要はOfiiceだけで使えるプログラミング言語なんだね。
なんだか難しそう...
でも、【簡易なプログラム】と書いてあるから比較的、簡単に作成できて自動化を行うことが出来るんだね。
業務はExcel使うことが多いから、これが出来ればかなり楽になるだろう!
でも、他にマクロもよく聞くけどVBAと何が違うんだろう。
マクロとは?

VBAと同じくらいマクロも聞くけど、何が違うんだろう。
”マクロとは、関連する複数の操作や手順、命令などを一つにまとめ、必要に応じて呼び出すことができるようにする機能のこと。”
引用:IT-用語辞典 e-Works
ん~、文字にすると全然わからない。
調べてみると、マクロでも種類があるみたい。
- ソフトウェア操作のマクロ
- プログラミングのマクロ
と2種類あるので順番に調べよう!
1.ソフトウェア操作のマクロ
アプリケーションソフトの操作を自動化する機能の一つにマクロがある。
利用者が複数の操作手順を一連の手続きとして記録したもので、簡単な操作で繰り返し実行することができる。
【利用者はマクロ登録開始に操作の後、操作画面上で登録したい一連の操作を行い、記録終了の操作を行う。この間の操作はデータとして記録され、録音した音声を再生するように簡単な操作で何度も繰り返し呼び出すことができる。】
業務上何度も繰り返し行わなければならない定型的な作業を自動化することができ、文書内の複数の個所や複数の文書に同じ操作を行わなければならない場合などに利用される。
手順を録音し、再現を何度でもするって事で大丈夫かな?
2.プログラミングのマクロ
プログラミングの分野では、ソースコード中に繰り返し登場する特定の記述を、別の(短い)記述に置き換えることができる機能をマクロという。
複数の命令をまとめて一つの命令のように記述したり、複数の箇所で参照される定数の値を後からまとめて変更できるようシンボル名で記述するのに使われる。
関数のようなプログラミング言語の持つ仕様や機能ではなく、アセンブラやコンパイラなどの機能として提供されるもので、コンパイルなどの前処理としてソースコードを単純に文字列置換することにより実現される。C言語などではプリプロセッサと呼ばれる専用のプログラムで処理される。
引用:IT-用語辞典 e-Works
はいっ。もうわかりません。
2番目の方は覚えなくていいかな???
VBAを調べていたけど、マクロの方がなんか簡単そうだし本来初心者にはマクロから出来るようになるのがいいんだろうぇ。
ただ、今回はVBAのマスターを目標にしているので、マクロではなく「VBA」をメインで勉強をしていこう!!!
次回は、VBAで何が出来るのかを調べて勉強しよう!
とりあえず本日はここまで!
お疲れ様でした!!