エクセルのマクロ(データベースの登録フォーム)について


Message#から前件を

日から 前を
Q&A掲示板へ

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Message#1 2014年12月15日(月)21時01分
From: ジャック
返事 削除 変更
エクセルマクロ初心者です。
エクセルのマクロ(データベースの登録フォーム)についてご教授お願いいたします。

大変長く、拙い文章となっております。
申し訳ございません。
また画像を参照してしていただけますと幸いです。

下記を登録ボタン(CommandButton1)を押した際に起動させたいと思っております。

@シートに追加したい行数を求めます。

産地に配置されたテキストボックス(TextBox3~8)の空白では無い物の数
×
種別に配置されたテキストボックスの空白では無い物の数(TextBox21~26)の数字を求めます。

例)全てが埋まっている場合6×6=36
TextBox3、TextBox4ならびにTextBox21が記載されている場合は2×1=2
(TextBoxは必ず若い数字の順に埋めます)

伝達事項1(TextBox27)が記載無しの場合、上記の数字+0
伝達事項1(TextBox27)が記載有り、伝達事項2(TextBox29)が記載無しの場合、上記の数字+1
伝達事項1(TextBox27)が記載有り、伝達事項2(TextBox29)も記載有りの場合、上記の数字+2

※伝達事項1が記載無し、伝達事項2が記載無しのケースはありません。

ここで求めた数値を行数とします。

例)産地(TextBox3~8)・種別(TextBox21~26)がすべて埋まっていて、伝達事項1が記載有り、伝達事項2も記載有りの場合6×6+2=38


Aシートに行数を追加する。

追加シート名(ListBox1)で選択されたシート名を検索する。

※ListBox1にはフォームを開いた時点で

Sub Macro1()
UserForm1.Show
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
UserForm1.ListBox1.AddItem (sh.Name)
Next
End Sub

上記マクロでシート名を読み込んでいます。

選択されたシートに@で求めた行数を最下行に加えます。


Bデータの入力

上記で選択されたシートに
A列に品番(TextBox1)
B列に産地(TextBox3-8)
C列に産地コード(TextBox9-14)
D列に種別(TextBox15-20)
E列に種別コード(TextBox21-26)
F列に価格(TextBox14)
G列に伝達事項(TextBox27、29)
H列に伝達相手(TextBox28、29)
の値を入力していきます。

データ入力のルールは
B-1)追加した行数の全てに記載するもの
A列の品番(TextBox1)、F列の価格(TextBox14)

B-2)追加した行数にTextBoxに記載されたデータに依存して記載するもの
B列の産地(TextBox3-8)、C列の産地コード(TextBox9-14)、D列の種別(TextBox15-20)、E列の種別コード(TextBox21-26)
※必ず
(TextBox3-8)に入力されたデータの数=(TextBox9-14)入力されたデータの数かつ
(TextBox15-20)に入力されたデータの数=(TextBox21-26)入力されたデータの数です。

B-3)固定で最下行に追加するもの
G列の伝達事項(TextBox27、29)、H列(TextBox28、29)の伝達相手です。
※必ず
(TextBox27、29)に入力されたデータの数=(TextBox28、29)入力されたデータの数です。


B-2)TextBoxに記載されたデータに依存して記載するもののデータ入力ルールは
まず上の行からD列ならびにE列にTextBoxの数字が若い順にTextBoxに記載された内容を入力。
これを1ブロックとします。
それを産地に記載されたデータの個数分だけ繰り返す。

B列ならびにC列には1ブロックごとにTextBoxの数字が若い順にTextBoxに記載された内容を入力。


B-3)固定で最下行に追加するもの
aとbの処理終了後、
伝達事項1(TextBox27)が記載無しの場合、
処理完了。

伝達事項1(TextBox27)が記載有り、伝達事項2(TextBox29)が記載無しの場合、
最下行のG列に伝達事項1(TextBox27)の内容を、最下行のH列に伝達相手1(TextBox28)の内容を記載

伝達事項1(TextBox27)が記載有り、伝達事項2(TextBox29)も記載有りの場合、
最下行の一つ上のG列に伝達事項1(TextBox27)の内容を、最下行の一つ上のH列に伝達相手1(TextBox28)の内容を記載
最下行のG列に伝達事項1(TextBox27)の内容を、最下行のH列に伝達相手1(TextBox28)の内容を記載


以上の処理を行いたいと思っております。
大変長い文章ならびに多くの処理が必要かと思います。
また大変拙い文章で誠に申し訳ございません。
つきましては、上記のマクロの記述(一部でも大変有難く存じます。)をご教授いただけませんでしょうか。
当方、現在エクセルのVBAを勉強している最中なのですが、若い頃に仕事を含めコンピューターを使うことが無かった為、かなり苦戦しております。

皆様のお力添えいただけますと幸いでございます。
長文失礼いたします。
何卒よろしくお願い申し上げます。

画像参考URLです。
フォーム
http://www.fastpic.jp/images.php?file=3437327040.jpg

実行例@
http://www.fastpic.jp/images.php?file=0377730932.jpg

実行例A
http://www.fastpic.jp/images.php?file=5270884660.jpg

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com