ファン
最新記事
カテゴリーアーカイブ

2018年01月19日

Excelで車庫証明アプリを作ろう








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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

フォームの「終了」ボタン

車庫24.png

最初、この「終了」ボタンは、Excelの終了を考えていましたが、

途中でフォームが閉じられるので、このボタンでExcelの終了は出来ません。

ですから「フォーム」の終了に変更します。


ボタンの名称も「終了」から「閉じる」に変更しましょう。

車庫25.png
Private Sub CommandButton2_Click()

Unload UserForm1

End Sub

記述内容は上記です。



それから、Accessを起動したときに、自動的にこのフォームが開くようにしましょう。

車庫26.png

左の「ThisWorkbook」というところを選択して、上記のように記述してください。

そうするとエクセルを立ち上げた時に、自動的にユーザーフォームが立ち上がります。

一応メインページにフォームの呼出しボタンを設けていますので不要かと

思いますが、それ以外で利用する場合もあるかと思い紹介しておきます。

これ以外に何か検討することを考えると、例えば「部屋番号」を入力すると

「駐車場」番号が表示されるとか、「部屋番号」はコンボボックスにして、

そこから選択できるようにし、存在しない部屋番号を入力された場合は

エラーが出るようにするとか、色々考えられますね。

色々自分でやってみると、勉強になりますし、力もつきます。


Excelに関しても色々やってきましたが、大体このくらいでしょうか。

このあたりで一旦終えます。

また紹介したいアプリを作成しましたら記載します。








2018年01月08日

Excelで車庫証明アプリを作ろう

エルセーヌ「小顔ハリ美肌コース」エステ体験






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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

履歴の保存

車庫21.png

最初にメインページのA1に今日の日付を入れるようにしましょう。

A1に=today()と入力すると今日の日付が表示されます。

車庫22.png

それから上記のように記述しました。

Sheets("発行履歴").Select

Sheets("発行履歴").Rows("2:2").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'(履歴に1行挿入する)

Sheets("発行履歴").Range("A2").Value = Sheets("メイン").Range("A1")

Sheets("発行履歴").Range("B2").Value = Sheets("車庫証明").Range("j6")

Sheets("発行履歴").Range("c2").Value = Sheets("車庫証明").Range("f10")

Sheets("発行履歴").Range("d2").Value = Sheets("車庫証明").Range("f7")

最初は発効履歴に1行挿入しています。

その後、車庫証明のシートからコピーしているだけです。

これで下記のように発行履歴が残ってきます。

車庫23.png







2018年01月02日

ExcelVBAで車庫証明アプリを作ろう

━━━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■□□□□□□□□□□□□□□□□□□□□□□□□□■■

     アンケートに答えて豪華賞品を当てよう!   

■■□□□□□□□□□□□□□□□□□□□□□□□□□■■

生活環境に関する簡単なアンケートに協力してね♪
『JCBギフトカード』や『全国百貨店共通商品券』等、
豪華賞品をプレゼント!

* ☆☆☆ ワンダフルNewYearキャンペーン! ☆☆☆ *
https://px.a8.net/svt/ejp?a8mat=2TPAYH+9KQ1KY+3DQS+62MDF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━━━




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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村


印刷する場合

このままの状態でも「車庫図面」でページを設定して印刷すれば

済むことですが、何ページを印刷すれば良いか分かるようにしましょう。

ページ番号を取得する方法

少し長くて複雑ですが下記に記載します。


Dim Lastpage As Long, Lastpage2 As Long, p As Integer, pp As Integer

Dim LastR As Long, LastC As Integer, i As Integer, j As Integer

Dim Nrow As Long, NLrow As Long, Ncol As Integer, NLcol As Integer

Dim Crow As Long, Ccol As Integer

Dim page As Integer 'ページ番号の変数

Application.ScreenUpdating = False '画面の動きを固定

Crow = Selection.Row '選択セルの行番号

Ccol = Selection.Column '選択セルの列番号

'正しく改ページ位置を取得する為、一旦改ページプレビューにする

ActiveWindow.View = xlPageBreakPreview

'縦方向最終改ページ数取得

Lastpage = ActiveSheet.HPageBreaks.Count

'横方向最終改ページ数取得

Lastpage2 = ActiveSheet.VPageBreaks.Count

'入力済み最終行、最終列取得

With ActiveSheet.UsedRange

LastR = .Row + .Rows.Count - 1

LastC = .Column + .Columns.Count - 1

End With

Ncol = 1

p = 0 'ページ数カウント初期値

'横方向改ページ分繰り返し

For j = 1 To Lastpage2 + 1

If j = Lastpage2 + 1 Then

If Ncol > LastC Then Exit For

NLcol = LastC

Else

NLcol = ActiveSheet.VPageBreaks(j).Location.Column - 1

End If

Nrow = 1

'縦方向改ページ分繰り返し

For i = 1 To Lastpage + 1

If i = Lastpage + 1 Then

If Nrow > LastR Then Exit For

NLrow = LastR

Else

NLrow = ActiveSheet.HPageBreaks(i).Location.Row - 1

End If

p = p + 1 'ページ数カウント

If Crow >= Nrow And Crow <= NLrow Then

If Ccol >= Ncol And Ccol <= NLcol Then

pp = p

End If

End If

Nrow = NLrow + 1

Next

Ncol = NLcol + 1

Next


'改ページプレビュー、画面の固定を戻す

ActiveWindow.View = xlNormalView

Application.ScreenUpdating = True

ActiveWindow.SelectedSheets.PrintOut pp, pp ‘必要なページを印刷する

上記に関しては詳しい説明は省きます。

ステップインで一つずつ動かしていけば、

ある程度動作は分かると思います。

印刷の手前で「MsgBox "選択中のセルは、

" & pp & " ページ目です"」という記述をすれば

下のようなメッセージが表示されます。

車庫20.png

印刷をする場合は下記の記述をすれば必要なページが印刷されます。
ActiveWindow.SelectedSheets.PrintOut pp, pp








2017年12月19日

Excelで車庫証明アプリを作ろう

東京の人気ホテル・旅館が最大50%OFF





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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村



Find関数について


Cells.Find(what:=m).Selectについて

条件に当てはまるセルを探します。

【構文】

Object.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,

MatchCase, MatchByte, SearchFormat)

・Object・・・Rangeオブジェクト

・What・・・検索するデータを指定します。省略できません。

・After・・・単一のセルを指定。この引数に指定したセルの次の

      セルから検索を開始します。

      省略するとObjectで指定したセル範囲の左上の次の

      セルから検索します。(省略可能)

・LookIn・・・検索の対象を指定。(省略可能)

       数式・・・(xlFormulas)

       値・・・(xlValues)

       コメント・・・(xlComments)

・LookAt・・・完全に同一のセルだけ検索します。(xlWhole)

       一部でも一致するセルを検索。(xlPart)

       (省略可能)

・SearchOrder・・・検索方向を指定する。(省略可能)

          列方向(xlByColumns)

          行方向(xlByRows)

・SearchDirection・・・前方に検索する場合(xlNext:既定値)

            後方に検索する場合(xlPrevious)

            (省略可能)

・MatchCase・・・大文字と小文字を区別する場合(True)

          区別しない場合(False)

          (省略可能)

・MatchByte・・・半角と全角を区別する場合(True)

区別しない場合(False)

          (省略可能)

・SearchFormat・・・書式を検索する場合(True)

書式を検索しない場合(False)

          (省略可能)

上記のような内容になります。

また、条件に当てはまるセルが複数存在する場合は、

見つかったセルの次を検索するためにFindNextメソッドと

FindPreviousメソッドを使用します。

・Object.FindNext(After)

・Object.FindPrevious(After)


今回は「what」以外は全て省略して「Cells.Find(what:=m)」となっております。


今回は必ず検索する駐車場が見つかるという前提でVBAを

作成していますが、本来は見つからない場合も想定に入れる必要があります。

見つからない場合はエラーが発生します。

Findメソッドはセルを見つけた場合、そのセルを表すRange

オブジェクトを返し、見つからなかった場合はNothingを返します。

下に例文を記載します。

Dim Rng As Range

Set Rng = Cells.Find(What:=m)

If Not Rng Is Nothing Then

   Cells.Find(what:=m).Select

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 16764159

.TintAndShade = 0

.PatternTintAndShade = 0

 End With

End If

上記のようにすると、もし該当する駐車場bェ無い場合は、そのまま終了します。




初期費用0円!格安スマホ【UQmobile】


2017年12月07日

ExcelVBAで車庫証明発行アプリ

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━┓
 高速・多機能・高安定レンタルサーバー『エックスサーバー』
 ─────────────────────────────────
・月額900円(税抜)から、大容量200GBからの高コストパフォーマンス
・安定のサーバー稼働率99.99%以上
・マルチドメイン・メールアドレス無制限!
・FastCGIに対応!PHP高速化や負荷軽減を図ることが可能!
・幅広いバージョンのPHPやSSHに対応!
・独自SSLを無料で利用可能!
 ─────────────────────────────────
  https://px.a8.net/svt/ejp?a8mat=2NR2G3+DG1FLE+CO4+601S3
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛




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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

駐車区画に色付け


Dim m As Integer

m = Sheets("車庫証明").Range("n4") '変数mに駐車場番号を指定

Sheets("車庫図面").Select

Sheets("車庫図面").Cells.Select

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

Cells.Find(what:=m).Select

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 16764159

.TintAndShade = 0

.PatternTintAndShade = 0

End With

上記のような記載をしました。

変数のところは分かりますね。

次の

Sheets("車庫図面").Select

Sheets("車庫図面").Cells.Select

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

ここは車庫図面に前回の色が残っているという前提で、

シート全部の色の指定を解除しています。

Cells.Find(what:=m).Select

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 16764159

.TintAndShade = 0

.PatternTintAndShade = 0

End With

次にFind関数を用いて車庫番号のセルを探して、

色を付けています。

例)

105号室を選択して、このVBAを実行させると下記のようになります。

車庫19.png

5番のところがピンクになりましたね。

これで指定の駐車場に色が付きました。




100GB、マルチドメインやMySQLが無制限。CGI・PHP高速化機能搭載【X2】

2017年11月24日

ExcelVBAで車庫証明発行アプリ

エステ・脱毛・フェイシャルのエルセーヌ





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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

使用者と契約者の関係性のVBA


車庫18.png

If UserForm1.OptionButton1 = True Then

Sheets("車庫証明").Range("p6").Value = "@"

ElseIf UserForm1.OptionButton2 = True Then

Sheets("車庫証明").Range("p7").Value = "A"

ElseIf UserForm1.OptionButton3 = True Then

Sheets("車庫証明").Range("p8").Value = "B"

ElseIf UserForm1.OptionButton4 = True Then

Sheets("車庫証明").Range("p9").Value = "C"

Sheets("車庫証明").Range("q10").Value = UserForm1.TextBox2

End If

「Unload UserForm1」の前に上記のような記述をしました。

ここも分かると思います。

オプションボタン1が選択されていれば、

「P6」に「@」を入れなさいという命令ですね。

オプションボタン4までは同じです。

最後にSheets("車庫証明").Range("q10").Value = UserForm1.TextBox2

というところがありますね。

これは関係性をコピーせよという意味合いです。

ここまでで、車庫証明に必要事項は記載できたと思います。




エルセーヌの大幅減量ダイエット


2017年11月16日

ExcelVBAで車庫証明発行アプリ

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━┓
 高速・多機能・高安定レンタルサーバー『エックスサーバー』
 ─────────────────────────────────
・月額900円(税抜)から、大容量200GBからの高コストパフォーマンス
・安定のサーバー稼働率99.99%以上
・高速性を重視し、最新20コアCPU(Xeon E5シリーズ)+192GBメモリ
 +RAID10を採用!
・幅広いバージョンのPHPやSSHに対応!
・初心者でも安心の24時間365日メールサポート!
 ─────────────────────────────────
  https://px.a8.net/svt/ejp?a8mat=2NR2G3+DG1FLE+CO4+5ZU2B
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛




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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

車庫証明へのコピー

保管場所の使用者欄でF6に住所・J6に部屋番号・M7に電話番号ですね。

保管場所の契約者欄はF9に住所・J9に部屋番号・M10に電話番号ですね。

それから、枠番号がN4になり、使用者と契約者の関係がP6〜P9になります。

その際、4その他を選択された場合、関係性をQ10にコピーする必要があります。


こちらで使用しているものは先ほど記載したように、オーナー様と賃貸者の

両方の住所・電話番号欄があり、「使用期間」も入力できるようになっています。

後、入力欄には部屋番号と駐車場bフ両方を入力するようにしております。

両方ともデータベースがあり、両方の整合性が取れない場合はエラーとなります。

車庫17.png

上記のように記載しました。

VBA上で関数を使用する場合は上記のように、

値 = WorksheetFunction.VLookup(検索値,検索範囲, 列数)という記載になります。

現時点、賃貸に関する考慮はされておりません。

Dim n As Long

Dim tbl As Range

Set tbl = Sheets("名簿").Range("a2:g29")

n = UserForm1.TextBox1.Value

Sheets("車庫証明").Range("m7").ClearContents

Sheets("車庫証明").Range("m10").ClearContents

Sheets("車庫証明").Range("j6").ClearContents

Sheets("車庫証明").Range("j9").ClearContents

Sheets("車庫証明").Range("f7:g7").ClearContents

Sheets("車庫証明").Range("f10:g10").ClearContents

Sheets("車庫証明").Range("n4:r4").ClearContents

Sheets("車庫証明").Range("p6:p9").ClearContents

Sheets("車庫証明").Range("q10").ClearContents

Sheets("車庫証明").Range("p6") = 1

Sheets("車庫証明").Range("p7") = 2

Sheets("車庫証明").Range("p8") = 3

Sheets("車庫証明").Range("p9") = 4


Sheets("車庫証明").Range("F6").Value = WorksheetFunction.VLookup(n, tbl, 3, False)

Sheets("車庫証明").Range("j6").Value = WorksheetFunction.VLookup(n, tbl, 1, False)

Sheets("車庫証明").Range("m7").Value = WorksheetFunction.VLookup(n, tbl, 5, False)

Sheets("車庫証明").Range("F9").Value = WorksheetFunction.VLookup(n, tbl, 3, False)

Sheets("車庫証明").Range("J9").Value = WorksheetFunction.VLookup(n, tbl, 1, False)

Sheets("車庫証明").Range("m10").Value = WorksheetFunction.VLookup(n, tbl, 5, False)

Sheets("車庫証明").Range("n4").Value = WorksheetFunction.VLookup(n, tbl, 4, False)

If UserForm1.OptionButton1 = True Then

Sheets("車庫証明").Range("F7").Value = WorksheetFunction.VLookup(n, tbl, 2, False)

Else

Sheets("車庫証明").Range("F7").Value = WorksheetFunction.VLookup(n, tbl, 6, False)

End If

Unload UserForm1

Sheets("車庫証明").Select

上記のように記載しました。

初めの下の部分ですが、ここで変数宣言しております。

通常は頭で宣言するのですが、今回はここでの宣言になっております。

Dim n As Long

Dim tbl As Range

Set tbl = Sheets("名簿").Range("a2:g29")

n = UserForm1.TextBox1.Value

「n」はユーザーフォームのテキストボックスなので、入力された部屋番号となります。

「tbl」は名簿範囲を変数として設定しています。

次に「ClearContents」というのがいくつか並んでいます。

以前一度同じような記述をしましたが、若干範囲を変更しましたので、

以前の部分を削除して、今回クリアを実施しましょう。

次に

Sheets("車庫証明").Range("F6").Value = WorksheetFunction.VLookup(n, tbl, 3, False)

というよく似た内容のものが並んでいます。

これはVlookup関数を使用して部屋番号から抽出した

「住所」「部屋番号」「電話番号」を車庫証明シートにコピーしているところです。

部屋番号は「=n」でもいいのですが、一応Vlookup関数にしております。

あと駐車場b焜Rピーしております。

VBAで関数を使用する場合はこのように、

WorksheetFunction.VLookup(検索値,検索範囲,列番号)という記述になります。


If UserForm1.OptionButton1 = True Then

Sheets("車庫証明").Range("F7").Value = WorksheetFunction.VLookup(n, tbl, 2, False)

Else

Sheets("車庫証明").Range("F7").Value = WorksheetFunction.VLookup(n, tbl, 6, False) End If

上記の部分ですが、契約者と使用者の関係が「本人」の場合は使用者に

契約者の名前をそのままコピーします。

違う場合は使用者(賃貸者)の名前をコピーします。


Unload UserForm1

Sheets("車庫証明").Select

上記の部分ですが、ユーザーフォーム1を閉じて、「車庫証明」のシートを

表示する命令です。

「フォームを閉じる」なので「close」でいいように思えますが、

フォームを閉じる場合は「Unload」を使用してください。




100GB大容量無制限レンタルサーバー、ドメインも激安【X2】
https://px.a8.net/svt/ejp?a8mat=2NR2G3+DEUKDU+CO4+TWE03

2017年11月04日

ExcelVBAで車庫証明発行アプリ

WordPressやEC-CUBEを簡単ワンクリックインストール!

マルチドメイン対応レンタルサーバー【シックスコア】






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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村

名簿の修正


最初に名簿を作成した時、あまり深く考えずに下記のように

車庫15.png

氏名・住所・部屋番号・駐車場aE電話番号・使用者という

並びで作ったのですが、部屋番号で検索するにはA列に

「部屋番号」を持ってきた方が良いと判断し、下記のように修正しました。

車庫16.png

簡単に言うと、「部屋番号」を基準にしてVlookup関数を使用したいためです。

Vlookup関数は検索するセルから見て右側しか抽出できません。

もちろん、以前紹介したように、他の関数と組み合わせれば、

左側も抽出できるのですが、今回はシンプルにしたいと思うので

上記のように変更して、Vlookup関数だけ使用したいと思います。

それから105号室は「賃貸」という前提で進めていますが、

本来ならば、オーナー様は別住所で、賃貸の「塚田さとる」がこの住所という事になります。

本来ならば、契約者の住所と使用者の住所は別になります。

この部分もとりあえず同じにしておきましょう。




┏━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 WordPressに特化したレンタルサーバー『wpXレンタルサーバー』
 ─────────────────────────────────
 ・最新の高性能サーバーマシン&高速ネットワーク
 ・大容量30GB、月額1,000円(税抜)〜
 ・リバースプロキシによるキャッシュなど、専用の高速システムを採用
 ・専用の管理ツールから簡単セットアップ
 ・過去14日間のデータの自動バックアップ機能
 ・独自ドメイン対応 & 1契約につき10個のWordPress運用が可能
 ─────────────────────────────────
  https://px.a8.net/svt/ejp?a8mat=2NR2G3+DDNP6A+CO4+ZR2VN
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

2017年10月30日

エクセルVBAで車庫証明発行アプリ

「小顔ハリ美肌コース」エステ体験





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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村


エラーメッセージ

「部屋番号」を入力されないで「印刷」ボタンを押された場合は

エラーメッセージが表示されるようにしましょう。

車庫11.png

If UserForm1.TextBox1 = "" Then

MsgBox ("部屋番号を入力してください")

Exit Sub

End If

上記のように記載しました。

内容は分かりますね。

車庫12.png

上記は部屋番号を記入せずに「印刷」ボタンを押したときの状態です。


次に「使用者と契約者の関係」で「その他」を選択した場合「関係性」を

記入しなかった場合もエラーメッセージを出しましょう。


車庫13.png

If UserForm1.OptionButton4 = True Then

If UserForm1.TextBox2 = "" Then

MsgBox ("関係性を入力してください")

Exit Sub

End If

End If

上記のように記載しました。

これも非常にシンプルに記述していますので、分かりますね。

車庫14.png

上記は部屋番号を入力し、「その他」を選択したが、「関係性」を

空白のまま「印刷」ボタンを押したときの状態です。

ここまでで、最初の仕掛けは出来たと思うので、ここからは入力に従って、

車庫証明にコピーして行きましょう。

注意するところは使用者と契約者が違う場合だけですね。

「同じ」を選択した時は、同じものをコピーすればOKですね。

それ以外は使用者(賃貸者)をコピーする。まあ実際はもっと

複雑ですが(本店・支店等)、今回はこのようにしましょう。




エルセーヌ



2017年10月19日

ExcelVBAで車庫証明発行アプリ

エルセーヌ





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

人気ブログランキングへ



にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村


使用者と契約者の関係

初期状態は「同じ」にしましょう。

車庫9.png

上記のように「UserForm」の「Initialize」にして、

Private Sub UserForm_Initialize()

OptionButton1.Value = True

End Sub

上記のように記載しましょう。

車庫10.png

フォームを開いたときに「同じ」にチェックが入っています。




エルセーヌの大幅減量ダイエット

検索
タグクラウド
プロフィール
さんの画像

60過ぎのおっちゃんです。同じ年齢層の中ではそこそこパソコンが使える方だと自負しています。今まで会社等で学んだ知識等を紹介していきたいと思います。
プロフィール
google-site-verification: google948a2bbbd2fd5164.html