2017年06月05日

【Excel】オリジナルの家計簿作り④

さて、いよいよ実戦です。
Alt+F11 を押して、標準モジュールを挿入しておいてくださいね~


まず、タイトルを入力します。
「sub タイトル」と入力すると、自動で下記の状態になります。

sub タイトル()
end sub


これが一塊のプログラムになります。
このsubend subの間にプログラムを書いていきます。

【ゴール】
上の<入力画面>から下の<フォーマット>に月別に転記するプログラムを作る。


①<入力画面>に入力されている範囲を取得する
②取得した範囲の中で上から下までプログラムを回す
③処理中の行の日付を取得する
④処理中の日付(月)に合わせて、転記先のシートを選択する
 ※シートがなければ、<フォーマット>をコピーして新規でシート作成
⑤<入力画面>からコピペ


今日は、上記の「①<入力画面>に入力されている範囲を取得する」から。

入力したリストは、件数が毎回変動しますので、プログラムで範囲を取得する必要があります。

a. 行を上から順に取得していき、空欄が出てきたらその前の行を最終行とする
【VBA】範囲取得サンプルA.JPG

b. Max行からジャンプ(ctrl+↑)した先を最終行とする
【VBA】範囲取得サンプルB.JPG

どちらでやっても構いませんが、業務上は b.の方が使うことが多いかな…と思います。

a、b、2つの方法を紹介しました。
それぞれのやり方は、

a.
最終行=cells(3,2).end(xldown).row


b.
最終行=cells(rows.count,2).end(xlup).row


となります。
が、セルの表記方法についての説明が必要かと思います。

cellsとはなんぞや??

ということなんですが、セルを表記する方法は2種類あります。
range("A1")
cells(1,1)

前者の「A1」という表記は見たことある人も多いかと思います。
後者は、列も数字で表記する方法で、前者と違い、
cells(行,列)の順で表記することになります。
なので、Range("B1")=cells(1,2)となるわけです。

rangeしか使えないこともあった気はしますが、基本的にcellsの方が使い勝手がいいので、
私はcellsを愛用しています。

この表記、アルファベットを数字に都度換算するのは面倒なので、
Excelの表示自体を変えてしまいましょう。

「ファイル」 → 「オプション」 → 「数式」 から、
下記にチェックを入れて、OKを押してみてください。

【VBA】R1C1.JPG

すると、表記が変わったかと思います。
これで、cellsでの表記がしやすくなりました。

そして、こどもが起きてきてしまったので、
続きはまた明日…


にほんブログ村さんのランキングへ参加はじめました。
よろしければ、クリックで応援お願いします☆

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村




ラベル:VBA 家計簿
posted by くま母 at 22:53| Comment(0) | ExcelVBA | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。