エクセルVBAを使って独自に作った領収書に、発行情報をまとめた一覧表からのデータを反映させます。
こうすれば、その一覧表のデータ内容を変更するだけで簡単に登録修正や再発行ができるようになります。
こんにちは、じゅんぱ店長(@junpa33)です。
今回の記事は”発行データ入力”シートを作成し、
入力されたデータを領収書テンプレートの表示に関連付けをしていきます。
前回の記事を確認された上で読み進めて頂くと分かり易いかと思います。
コンテンツ
データを取り込む入力シートを作成します
それでは、発行データ入力シートを作成していきます。
Sheet名を変更します
”Sheet2”というシート名を”発行データ入力”という名前に変更します。
シート名は前回も変更しましたので、同じ方法で作業してください。
変更方法はこの記事を参考にしてください。『Sheet(シート)名の変更』へ
このようになります。
データ入力の一覧表を作ります
A列からH列まで1行目に項目名を書いていきます。
セルA1・・・伝票番号(発行通番) セルB1・・・作成年月日
セルC1・・・宛名1(社名組織名) セルD1・・・宛名2(発行先名)
セルE1・・・領収金額 セルF1・・・消費税
セルG1・・・但し書き セルH1・・・発行済
ビジュアル的にはお好みに合わせて設定してください。
このような感じになります。
後は罫線など適当に引いていただいてもOKです。
エクセルでよく使う関数は各セルには埋め込みません。誤って関数式を消してしまうこともありません。
先頭行の項目表示以外は、”すべてのセル”は空のままです。
データの入れ方は、今配置したこの項目に合ったデータを記入するということです。
領収書にデータを反映させるVBAを組んでいきます
ここでは、本体のVBAを組み上げていきます。
まず手始めに入力されたデータを、領収書テンプレートに表示させるところから始ます。
発行年月日、表示金額(税込み金額、消費税、本体価格)と表示方法などは、表示データの加工が必要な部分になります。
後の記事の中で、今回説明するVBAコードをさらに加工することになります。
VBE(ビジュアルベーシックエディター)を起動する
VBA初めての起動。VBEの立ち上げ、保存と終了”開発タブ”から”Visual Basic”をクリックしてVBエディターのウインドウを開いてください。
開いたウインドウの”挿入”タブから”標準モジュール”をクリックします。
このようになります。
VBAコードの記述方法
コードウインドにVBAコードを記述していきますが、記述方法にはルールがあります。
「Sub ・・・・・ End Sub」の中でコードを記述していきます。
詳しくは、記述方法を皆さんで調べてください。
Sub プロシージャー名()
本文
End Sub
大雑把にこのような記述様式です。
変数とは、発行データ入力シートの各項目のデータになります。(それぞれの領収書で金額などが変わります。)
セルA1・・・伝票番号(発行通番)→ aN
セルB1・・・作成年月日 → aDay
セルC1・・・宛名1(社名組織名など)→ aCusa
セルD1・・・宛名2(発行先名) → aCusb
セルE1・・・領収金額 → aBill
セルF1・・・消費税 → aTax
セルG1・・・但し書き → aNote
セルH1・・・発行済
と変数名を付けます。
ここまでの内容をコードとして記述します。
コード①
Sub 領収書作成()
Dim aN As Long
Dim aDay As String
Dim aCusa As String
Dim aCusb As String
Dim aBill As Long
Dim aTax As Long
Dim aNote As String
Dim anum As Integer
Dim aBilln As String
領収書表示データを変数としてコード化する
次に、発行データ入力シートの「どの顧客の分の領収書を作るのか」を指定する方法ですが、
入力シートで、伝票番号(発行通番)をクリックすることで作成を決定できるようにします。
例えば「伝票番号0001番をクリックすれば、そのお客様の領収書を発行できる」ようにします。
エクセルVBAでは今この時、カーソルが掴んでいる(置かれている)セルのことをアクティブなセルと言います。
そしてその位置(行と列番号)をプログラムコードに利用することができます。
その位置は、領収書発行の度に変わりますので、先ほどと同じように変数で表示することができます。
アクティブセルの行番号を変数aRとすると、aR=ActiveCell.Row と表示できます。
さらには、
そのアクティブセルは、どのシート名での動きを言っているのかをプログラムに示す必要があります。
そのことを Worksheets(”発行データ入力”).Select と指定します。
したがって、今指定した、発行したい領収書のデータは、
発行データ入力シートでの作業で | Worksheets(“発行データ入力”).Select |
アクティブセルのあるaR行のA列の伝票番号 | aN = Range(“A” & aR).Value |
アクティブセルのあるaR行のB列の作成年月日 | aDay = Range(“B” & aR).Value |
アクティブセルのあるaR行のC列の宛名1 | aCusa = Range(“C” & aR).Value |
アクティブセルのあるaR行のD列の宛名2 | aCusb = Range(“D” & aR).Value |
アクティブセルのあるaR行のE列の領収金額 | aBill = Range(“E” & aR).Value |
アクティブセルのあるaR行のF列の消費税 | aTax = Range(“F” & aR).Value |
アクティブセルのあるaR行のG列の但し書き | aNote = Range(“G” & aR).Value |
となります。
Rangeはセル位置の指定方法、Valueは値と覚えてください。
ここまでの内容をコードとして記述します。
コード②
Worksheets("発行データ入力").Select
aR = ActiveCell.Row
aN = Range("A" & aR).Value
aDay = Range("B" & aR).Value
aCusa = Range("C" & aR).Value
aCusb = Range("D" & aR).Value
aBill = Range("E" & aR).Value
aTax = Range("F" & aR).Value
aNote = Range("G" & aR).Value
SELECTとActiveをもう少し詳しく説明しています。
VBA 似た者SelectとActivateの違いを理解変数の値を領収書テンプレートに表示する
発行データから取り出したそれぞれの変数を、領収書テンプレートに表示させていきます。
ここでは、注意しなければならないことがあります。
領収書に表示される金額についてですが、税込み価格、本体価格、消費税額の3種類あります。
しかし発行データシートには本体価格のデータがありませんので、領収書を作成する都度計算して表示させる必要があります。
同時に消費税額が0円の場合は税込み価格になりますのであえて本体価格は表示しないようにします。
これには「もし〇〇なら××」という条件式を利用して計算します。
この作業は、コード④の部分になります。
また最初に、領収書シートで行うと指定することを忘れないようにします。
ここまでを内容をコードにしますとこのようになります。
コード③
Worksheets("領収書").Select
Range("T3") = aN
Range("T25") = aN
Range("R5") = aDay
Range("R27") = aDay
Range("C6") = aCusa
Range("C7") = aCusb
Range("C28") = aCusa
Range("C29") = aCusb
コード④
If aTax = 0 Then
Range("G20") = " 円"
Range("G42") = " 円"
Range("H21") = " 円"
Range("H43") = " 円"
ElseIf aTax <> 0 Then
Range("G20") = aBill - aTax & "円"
Range("G42") = aBill - aTax & "円"
Range("H21") = aTax & "円"
Range("H43") = aTax & "円"
End If
Range("F13") = aNote
Range("F35") = aNote
領収書の作成にエクセルのデータを反映のまとめ
ここまでの内容を一度コードウインドに記述してテストしてみましょう。
コード①、コード②、コード③、コード④を順番にコピペで貼り付けてみてください。
このような感じになったでしょうか。
発行データ入力シートに適当にサンプルデータを記入してください。
三角の緑色アイコン(SUB/ユーザーフォームの実行)をクリックすると記入したVBAマクロが実行されます。
自動で領収書シートが表示され、テンプレートにデータが表示されれば成功です。
次の記事では、金額表示の部分を少し凝ったものにしていきます。
電子書籍版「Excelマクロ&VBA超入門」をamazonで見てみる
(著者)井上香緒里(出版社)技術評論社
(税込価格)1,738円(本体1,580円+税)
マクロとVBAについて学んでみたいけれど,いまひとつ自信がないという方のために,ひとつひとつの操作を丁寧に解説する1冊目の教科書です。
エクセルVBAの「い・ろ・は の い」から説明していますので、安心して取り組める参考書です。
例題として、
- 「データ消去」「シートのコピー」「メッセージボックス」の機能を持つお小遣い帳
- 「入力フォーム」の機能を持った歩数表
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。