Excel

セルの値(複数も可)取得【Excel VBA】

Kuni.W

複数選択したセルのプロパティを取得したいと思った場面ありませんか?
(配列を使うという手段ありますが、今回は違います。)
ここでいうプロパティとは、例えばセルのアドレス(列や行)を指します。
CellsやRangeなどで選択することはできても、その後の処理に使ったりする方法を説明します。

スポンサーリンク


やりたいこと

手動・自動問わず、選択されているセルのプロパティを取得する。

方法

.Selectionの可能性を探っていきます。

サンプルソース(コード)

セルの選択数を取得

Sub SelectionCount()
Selection.Count
End Sub

上記で取得した値は、変数に代入することが出来ます。

Sub SelectDainyuu()
Dim Dainyuu As Long
Range("A1:C1").Select

Dainyuu = Selection.Count
MsgBox Dainyuu & "件のセルを選択しています。"
End Sub

選択したセルのアドレス取得

Sub SelectionNo()
Dim SelectAddressRow As Long
Dim SelectAddressColumn As Long

Range("A1").Select
MsgBox "選択したセルの行番号は、" & SelectAddressRow  '1行目なので1と表示
MsgBox "選択したセルの列番号は、" & SelectAddressColumn '1列目なので1と表示
End Sub

選択した範囲は一番左上選択セル(A1に近いもの)を起点に列右方向にナンバリングし、最も右の次は次の行の左端から右方向にナンバリングする。というルールがあります。

セルの選択数(カウント)の応用

一番最後(右下)のセルの列、行を取得することもできます。

Selection(Selection.Count).Column
Selection(Selection.Count).Row

となります。数字(ナンバー)指定も良いですが、可変の場合はできるだけ数値を自動的に取得したいですね。


うまく使いこなせば、ユーザが検索キーワードを入力して検索するのではなく、任意で選択したセルの値を取得して処理に使う。なんてことも容易にできるようになりますね。

色々と活用の目線を広げてみましょう!

ABOUT ME
記事URLをコピーしました