エクセルのマクロ(データベースの登録フォーム)について
昨日以降(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 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降