pickup

目次

最終行の値ではなく、セルの最初の値は、どうやって取得する?

こんにちは。伊川(@naonaoke)です。

ExcelのVBAでは、最終行、最終列の値の取得は必須です。

これが、理解できないと、VBAは面白くなりません。

なので、【Excel VBA 最終行】などで、検索すると、結構な勢いで、HITします。

しかし、最初って、どう書くの?

こんな疑問に最近ぶつかりました。

情けないですが、この最近の疑問をネタにブログを記載したいと思います。

このブログはこんな人にお勧め

このブログはこんな人にお勧め
  • ExcelVBAを勉強して、初級の壁を破りたい人
  • ExcelVBAで、cellsの使い方がわからない人
  • 最終行、最初行を、変数を使って表したい人

このブログを、読み終わるころには・・・・

Excelでいう、最終行、最終列、最初のセルなどを、完璧に理解できます。やっていることは、簡単なのですが、VBAの初学者には、本当に難しい壁になります。私も、ずっと理解できなくて、本当に苦労した記憶があります。今回は、コードも短くして、わかりやすく解説しました。


スポンサーリンク

ExcelVBAには、いろいろな範囲選択の方法がある

前回の記事でも紹介しましたが、範囲の選択はいろいろ方法があります。

CurrentRegionが一番カンタンな方法だと思います。

しかし、実務では、最初のセル、最後のセルは、日によってマチマチな訳です。

それを毎日、直面すると結構なストレスです。

そのストレスを緩和してくれるのが、VBAです。

セルの最初と最後 作業手順 その1 データベース確認

セルA4~セルA15までを選択して、コピーしたいのです。

いつもは、セルA2から始まるので、困りませんが、セルA4から始まる場合を想定します。

セルの最初と最後 作業手順 その2 列の最初と最後

セルの最初の値は、【Ctrl+↓】で、セルの最初の値のところでストップします。

それとは逆に、セルの最後の値は、【Ctrl+↓】を実行すると、空白のセルで止まります。

だから、コードを書くには、最後のセルを求めるほうが難しいのです。

以外な盲点でしたが、【Ctrl+↓】をVBAで書くとこうなります。

maxR = Cells(1, 1).End(xlDown).Row

これで最初のセルの値の場所まで、ワープできます。

maxrow = Cells(Rows.Count, “A”).End(xlUp).Row

maxR = Cells(1, 1).End(xlDown).Row

自分でやってみて、上記のコードの覚え方です。

最後のセルの値⇒End(xlUp).Row

最初のセルの値⇒End(xlDown).Row

だからxlup、つまり上に向かいます。


だから、xlDown、つまり下がります。

セルの最初と最後 作業手順 その3 横はどうなるの?

では、横の場合はどうなるのでしょうか?

maxColumns = Cells(1, Columns.Count).End(xlToLeft).Column

これが、横の最終の値です。

上の図でいうなら、セルP1、つまり、10です。

では、最初のセルE1、つまり、1はどのようにするのでしょうか?

xlToLeftが、最後なので、xlToRightになるかも?

このように、アタリをつけてコードを書いてみましょう。

そして、セルA1を起点とするので、

maxC = Cells(1, 1).End(xlToRight).Column、という憶測が立ちます。

でも、これ、実は正解なのです。

VBAの勉強においては、写経もいいですが、想像することも大切なのです。

セルの最初と最後 作業手順 その4 完成のコード

セルの最初と最後 作業手順 その5 注意点

上記のコードでもちろん作動します。

しかし、上手く作動しない時もあります。

私の失敗談ですが、セルの最終行の値を取得するときに、どうしても作動しない場合がありました。

その時のセルの最終行は、セルA100でした。

3時間くらいハマリました。

誤作動の原因は、セルA1000に1があったからです。

何事も過信はいけません。

ここがポイント

ここがポイント
Function8.png
セルの最初から、最後までは、VBA初学者の登竜門です。どんなに難しいコードでも、必ず、VBAで表現できるはずです。基本と想像力をもって、VBAのコードを考えてみましょう。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

以外とカンタンな内容ですが、その場面に直面すると、なかなか思い浮かばないのがVBAです。

Googleで検索するよりも、ぜひ、私のサイトで検索してみてください。

きっと、ヒントがあるはずです。
今回のサンプルファイルは、No186です。

サンプルファイルを購入希望の方はココをクリック
毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事