jump to navigation

VBAのセル指定 2012/08/03

Posted by dbot in VBAのメモ.
trackback

VBAのメモ
ただし、Execl2000、VB6.0、参考資料VBforExecl97用

●VBAのセル指定

VBAのセル番地指定、RangeまたはCells
セルは行列ともに1相対
セルA1は1列目・1行目

セルE3を指定する場合の表記
①Range(“E3″)
Execlのセル指定(A1形式、列行指定)と同じ
頭の英字が列番号、後ろの数字が行番号
②Cells(3,”E”)
列の指定がExeclの列指定と同じ指定になるため、どのセルを指しているか解りやすい。
③Cells(3,5)
列の指定が数字のためどのセルを指しているかわかり難い。
Cells(rowIndex,columnIndex)
rowIndex:行番号、数字で指定する。
columnIndex:列番号、数字または英字(Execlの列指定)で指定する。

どのセルを示しているかわかり易いのは、①>②>③
セルの位置を移動しやすいのは、③>②>①
いずれも、変数を指定できる。

●セルのオフセット指定
Offset(rowOffset,columnOffset)
rowOffset:行オフセット,columnOffset:列オフセット
省略すると0
RangeまたはCellsの指定を変更することなく、
オフセットを変更することによりセルの番地を変更することが出来る。

Range(“E3”).offset(0,0) ・・・セルE3
Range(“E3”).offset(2,1) ・・・セルF5
Range(“E3”).offset(5,0) ・・・セルE8
Range(“E3”).offset(5,-2) ・・・セルC8

VBAの記述

20120803000

実行結果

20120803001

ただし、セルの結合がある場合、単純にオフセットで求めた値とExeclのセル番地が一致しない。

VBAの記述

20120803100

セルの結合が無い場合の実行結果

20120803101

セルの結合がある場合の実行結果

20120803102

offsetを指定する場合、セルの結合の有無を意識する必要がある。

2012.08.04追記

offset指定特有のずれは、
RangeまたはCellsで指定したセルが結合されている場合に発生する(緑色の部分)。
結合されたセルに対する操作の有効無効は、
offset無しでRangeまたはCellsで指定したセルが結合されている場合にも当てはまる。

広告

コメント»

No comments yet — be the first.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。