TOPページへ

セル操作関係VBAマクロ

Excel VBAExcel のテクニカル情報サイトです。
Excelは、VBAを使うとありとあらゆる処理ができ、とても便利です!
そんな、エクセルの知識や実用的なVBAマクロなどをたくさん紹介していきます!


このページは、セル操作関係VBAマクロのカテゴリページです。





RSS情報アンテナ表示
RSS
RSS

【サイト管理人よりひと言】
Excel VBA の素晴らしさに惹かれてこのサイトを作りました。 ExcelでVBAプログラミングが組めるようになると、どんな面倒な処理でも VBAで処理をさせることができるようになります。 私の場合、事務系の仕事の面倒な処理は全てExcelにやらせています。 Excel VBAに出会ってからは驚くほど仕事の効率が上がりました。 今まで数時間かかっていた事務処理の仕事が、わずか数秒で終わったりしています。 本当にエクセルは素晴らしい表計算アプリケーションソフトです。

カテゴリ:セル操作関係VBAマクロ

表の指定した行(連続したデータ)の最終列(右端のセル)を調べるExcel VBAの記述

エクセルのシート上に表があって、その表のある指定した行の最終列
(連続したデータの右端のセル)を調べたい場合がけっこうあると思います。
個人的には表の最後のセルを調べる(移動する)VBAマクロは良く使います。
どういう時に使うかと言うと、たとえば、ユーザーフォームでテキストの
入力フォームを表示させ、そこにデータを入力させて、
その入力されたデータを表の最後に追加したりとか。
また、最新のデータが表の一番右にある場合などに瞬時に
最後のデータを取り出したり、データの最後にカーソルを移動させたりできます。
このように複雑な処理をやりたい場合に、連続したデータの最後を調べる処理は
結構使います。それでは、表の指定した行(連続したデータ)の最終列を調べる
VBAの記述です。(連続したデータの右端のセルを調べるVBAの記述です。)



[記述例] 表の指定した行の最終列を調べるVBA記述
Sub test()

    '変数の宣言(とりあえずVariant型)
    Dim r As Variant

    '基準行の表(連続したデータ)の最終列を調べる
    r = Range("A1").End(xlToRight).Column

    'メッセージボックスで結果を表示
    MsgBox "基準行のいちばん右端のセルは、" & r & " 列目です。"

End Sub
[動作とプログラムの説明]
最初に、結果を代入して表示する時に使う変数rの宣言をしています。
私の方では表の大きさは分からないのでVariant型で宣言しています。
表の大きさが分かっているならば、型を適切なものに変えて構いません。
変数の適切な宣言は、メモリの節約になりますので。
次に表の指定した行の最終列を変数のrに代入します。
ここで注意して欲しいのは、連続したデータの右端の列数が代入される
ということです。連続したデータの途中で空白があると、
空白行の1つ前、つまりデータが途切れたセルが最後の列と見なします。
Range("A1")
のところの「A1」は、指定する行(起点となるセル)です。
ここを実際に自分が調べたい行(起点となるセル)のセルに変えて下さい。
End(xlToRight).Column
のところは、連続したデータ(行)の最後という意味です。
(「Column」は行の指定です。)
今回のVBA記述は、表の左から、連続したデータの右端まで移動する
(調べる)ものですが、応用で、表の右から調べることもできます。
もし連続したデータの途中にどうしても空白列(空白セル)ができて
しまう場合は、表のいちばん右から左方向に移動(調べる)ことで、
表の最後を確実に調べることができます。Excel2003の場合だと、
最大列数は256列、Excel2007やExcel2010の場合だと、最大列数は、
16384列なります。なので、以下のような記述をします。

[記述例] 表の指定した行の最終列をいちばん右から調べるVBA記述
Sub test()

    '変数の宣言(とりあえずVariant型)
    Dim r As Variant

    '基準行の表(連続したデータ)の最終列を調べる
    r = Cells(1, 256).End(xlToLeft).Column

    'メッセージボックスで結果を表示
    MsgBox "基準行のいちばん右端のセルは、" & r & " 列目です。"

End Sub
この場合、先の記述例では、
End(xlToRight).Column
だったのが、
End(xlToLeft).Column
になっていますので、注意して下さい。
「xlToRight」が右に向かって移動(調べる)、
「xlToLeft」が左に向かって移動(調べる)ことを意味しています。
Cells(1, 256)
の「256」は、Excel2003での最大列数256列の「256」です。
つまり、1行目256列目から左に向かって調べています。

Excel2007やExcel2010の最大列数は16384列ですので、
Excel2007やExcel2010の場合は、
Cells(1, 16384)
にすると、表のいちばん右側(最大列数16384列の「16384」)の
セルから左に向かって調べることになります。



 

カテゴリ:セル操作関係VBAマクロ 



サイト内検索



Excel NAVI(エクセル ナビ)のトップページへ移動



当サイトのプライバシーポリシーと免責事項について
当サイトの文章、記事、内容、画像、写真などの無断利用、無断転載を禁じます。
Copyright (C) Excel NAVI(エクセル ナビ) All Rights Reserved.