正しく最終行と最終列を把握(取得)して、思い通りにプログラムを動かす! | 50歳からのエクセルプログラミング

50歳からのエクセルプログラミング

ブログでお伝えしたい事は、プログラムを使うと著しく業務効率が上がると言う事です。興味がある方はプログラムを動かしてその素晴らしさを体感して下さい。無限の可能性を秘めたプログラミングの世界をご紹介して参ります。

テーマ:

 途中から読まれる方もいらっしゃると思いますので、ブログ連載の流れをご説明したいと思います。ご紹介したいプログラムは8月6日にダウンロード、8月7日に実行する記事を書いています。プログラムはあるフォルダーに入れた2つのファイルを結合して、1つのファイルにするというものです。全くエクセルのプログラムに馴染みのない方も操作できるように極力専門用語を使わず、出来る限り図解を多く入れる様にして参りました。8月5日以前は前準備、8日以降はプログラムを組むうえで知っておかなければならない事項を説明しています。現在もその途中です。

 

 今回は、コピーするセル範囲をいかに把握(取得)して、その数値を変数に代入するか、をご説明します。

まず、hiro-yukioのサイトより「使用セル範囲の把握&サンプルデータ.xlsm」をダウンロードして下さい。

 

 下図の様にシート「サンプルデータ1」とプログラム部分が見える様にして下さい。この「サンプルデータ1」シートに入っているデータの最終行と最終列を調べるプログラムを実行してみましょう。

 Module1に入っている、「Sub セル範囲の把握_取得()」プログラムを実行して見て下さい。氏名列における最終行は11行と表示されます。「OK」をクリックし進めます。次に進みます。

 

 表題行における最終列は8列(H列)と表示されます。「OK」をクリックするとこれでプログラムは終了です。プログラムを見てみましょう。


対象シートの最終行 = .Cells(Rows.Count, 2).End(xlUp).Row

赤文字の命令文?により、2列目のデータ、この場合は「氏名」が何行目まで入っているかを調べられます。

 

対象シートの最終列 = .Cells(1, Columns.Count).End(xlToLeft).Column

赤文字の命令文?により、1行目のデータ、この場合は「表題列」が何列目まで入っているかを調べられます。

 

このプログラムをシートの2番目「サンプルデータ2」でも実行して見て下さい。「サンプルデータ1」よりも行数、列数が多くデータが入っています。

 

最後に「サンプルデータ1」または「サンプルデータ2」を「3番目」のシートに複写するサンプルプログラムを実行します。

 Module1に入っている、2番目の「Sub テストデータを3番目のシートに複写する()」プログラムを実行します。次に進みます。

 

「3番目」のシートタブをクリックしてデータが貼り付け(ペースト)されていることを確認して下さい。「サンプルデータ1」と「サンプルデータ2」の両方実行してみて下さい。再度プログラムを実行する場合は、「3番目」のシートを行削除でデータを消去し、「サンプルデータ1」または「サンプルデータ2」のシートを表示してから、プログラムを実行してください。最後に・・・

 動作をさせたい場所(ブック、シート)の「はっきり明示」を前回までにご説明し、今回、コピーしたい範囲の把握(取得)方法がご理解いただけたでしょうか。少しでもプログラミングの手順がイメージ出来る様になったと言う方が1人でもいらっしゃれば幸いです。

 

 次回は、変数宣言と「Option Explicit」と言う命令文?についてご説明予定です。お楽しみに。

 

読者の方へ。過去の記事をご覧になられていて、「画像」が上手く表示されない場合は、「hiro-yukioのサイト」の「過去のブログ記事」フォルダーにPDFで保存しましたのでこちらでご覧下さい。

hiro-yukioのサイト