検索
タグクラウド
プロフィール
yoshimatsuさんの画像
yoshimatsu
60過ぎのおっちゃんです。同じ年齢層の中ではそこそこパソコンが使える方だと自負しています。今まで会社等で学んだ知識等を紹介していきたいと思います。

広告

posted by fanblog

2016年12月20日

エクセル(Excel)VBAで入場券を作ってみよう。





マイクロソフトアクセスのまとめ記事はこちら

人気ブログランキングへ



入場券のVBA

入場券7.png

VBAの内容ですが

kai = 2 ・・・会員一覧の最初は2行目なので「2」に設定

nyu = 8 ・・・入場券の最初の名前の位置は8行目なので「8」に設定


If Sheets("会員一覧").Cells(kai, 6) = "" Then ・・・2行目の発券日に記載があるかどうか

Sheets("入場券").Cells(nyu, 5).Value = Sheets("会員一覧").Cells(kai, 2)

・・・発券日に記載がない場合は入場券の1枚目の名前欄に最初の名前を入力

If Sheets("会員一覧").Cells(kai, 4) = "幼児" Then

・・・会員一覧の年齢欄に「幼児」となっている場合は

Sheets("入場券").Cells(nyu, 14).Value = Sheets("会員一覧").Cells(kai, 4) & "・保護者必要"

・・・幼児の幼児の場合は年齢欄に「幼児・保護者必要」と記載

ElseIf Sheets("会員一覧").Cells(kai, 4) = "小*" Then

・・・小学生の場合

Sheets("入場券").Cells(nyu, 14).Value = Sheets("会員一覧").Cells(kai, 4) & "・保護者必要"

・・・小学生も保護者必要

Else

Sheets("入場券").Cells(nyu, 14).Value = Sheets("会員一覧").Cells(kai, 4)

・・・上記以外は年齢コピー

End If

End If

上のVBAの流れは分かると思います。

会員一覧の名簿の1行目(エクセルシート上は2行目)の発券日を確認して、

発券日が記載されている場合はこの「If」は終了して一番下の「End If」まで飛び終了します。

発券日が記載されていない場合は次の行へ進み、名簿の1番目の名前を入場券の1枚目にコピーします。

次に年齢欄を見ていき、「幼児」の場合は、入場券の年齢欄に「幼児」+「・保護者必要」と記載する。

小学生の場合は学年と保護者必要となる。

幼児と小学生以外は年齢がそのまま記載される。

という流れです。分かりますか。


これが基本のVBAです。

入場券が1ページの6枚あるので同じようなVBAを6回書けばいいのですが、

それではあまりにも芸がないので、「繰り返し」(ループ)を使ってみましょう。


以前For〜NextとかDo〜Loopとか説明したと思います。

繰り返す回数が決まっている場合はFor〜Nextが良いのですが、

今回の場合は会員数が増える場合も想定するとDo〜Loopの方が

条件的には好ましいと思います。

別にFor〜Nextで繰り返す回数を多めに見積もって使用しても問題ないです。

私は比較的For〜Nextが好きなので良くこちらを利用します。

入場券8.png

頭にDo While Sheets("会員一覧").Cells(kai, 1) <> ""を追記して

End Ifの後に

kai = kai + 1

Loopを追記しました。


Cells(kai, 1) <> ""は条件式で会員一覧の1列目の会員番号が記載されているところまで

ループするということです。

「””」は空白とか未記入とかという意味です。


但し上のVBAを実行すると入場券の1枚目だけが変化するだけで2枚目以降に入力されません。







この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/5738818
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: