Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2607 / 13645 ツリー ←次へ | 前へ→

【66856】新規社員IDの取得方法について 八家九僧陀 10/10/12(火) 23:33 質問[未読]
【66858】Re:新規社員IDの取得方法について 通り魔 10/10/13(水) 3:07 回答[未読]
【66860】Re:新規社員IDの取得方法について 八家九僧陀 10/10/13(水) 8:56 質問[未読]
【66861】Re:新規社員IDの取得方法について Jaka 10/10/13(水) 10:40 発言[未読]
【66898】Re:新規社員IDの取得方法について 八家九僧陀 10/10/15(金) 20:06 お礼[未読]
【66931】Re:新規社員IDの取得方法について Jaka 10/10/18(月) 9:29 発言[未読]

【66856】新規社員IDの取得方法について
質問  八家九僧陀  - 10/10/12(火) 23:33 -

引用なし
パスワード
   A列に社員ID、B列に氏名、C列に住所、以下当該社員のデータが行単位で登録されている社員名簿があります。
社員名簿の登録、変更、削除は入力フォームで行っています。
社員IDは、(株)〇〇は 10001(10000台)から、(有)□□は 20001(20000台)からIDを割り振っています。
新入社員がいた場合、その都度登録していますが、その際、「新しい社員IDは何番だっけ」と名簿等で確認していますが、それを、「新規」のcommandbuttonを押したときに、10000台の最大値+1、20000台の最大値+1を検索、取得して「(株)〇〇の社員IDは 10***から使用可能です。(有)□□の社員IDは 20***から使用可能です」とメッセージ表示させたいのですが、そのVBAを教えてください。

A列 A1は項目名「社員ID」、A2以下から社員IDが並んでいます。

【66858】Re:新規社員IDの取得方法について
回答  通り魔  - 10/10/13(水) 3:07 -

引用なし
パスワード
   ▼八家九僧陀 さん:

削除したIDを使い回さないのであれば、どっかのセルにそれぞれの社員数を
保存しておいてそれプラス1万か2万をすればよいと思われます。

【66860】Re:新規社員IDの取得方法について
質問  八家九僧陀  - 10/10/13(水) 8:56 -

引用なし
パスワード
   ▼通り魔 さん:
>
>削除したIDを使い回さないのであれば、どっかのセルにそれぞれの社員数を
>保存しておいてそれプラス1万か2万をすればよいと思われます。

ご教示ありがとうございます。
ただ一度に10人、15人等を登録しようとするときに、そのたびに保存やメモ等に控えていては、うっかり保存忘れ、控え忘れてしまうと重複IDとなってしまったりとのおそれがあるので、やはり「新規」のcommandbuttonを押したときに、10000台の最大値+1、20000台の最大値+1を検索、取得して「(株)〇〇の社員IDは 10***から使用可能です。(有)□□の社員IDは 20***から使用可能です」とメッセージ表示させたいのですが・・・・
A列に収納されたIDから10000台の最大値、20000台の最大値を取得して、そのIDにそれぞれ[1]を加算した数値をmsgboxに表示できるVBAを教えていただければ幸いです。お願いします。

【66861】Re:新規社員IDの取得方法について
発言  Jaka  - 10/10/13(水) 10:40 -

引用なし
パスワード
   こういうのでも取れますけど。

=SUMPRODUCT(MAX((A1:A27>=10000)*(A1:A27<20000)*(A1:A27)))
=SUMPRODUCT(MAX((A1:A27>=20000)*(A1:A27<30000)*(A1:A27)))

【66898】Re:新規社員IDの取得方法について
お礼  八家九僧陀  - 10/10/15(金) 20:06 -

引用なし
パスワード
   ▼Jaka さん:
>こういうのでも取れますけど。
>
>=SUMPRODUCT(MAX((A1:A27>=10000)*(A1:A27<20000)*(A1:A27)))
>=SUMPRODUCT(MAX((A1:A27>=20000)*(A1:A27<30000)*(A1:A27)))

ありがとうございました。
別シートのセルに上の数式をセットして、その値+1の値をMsgboxに表示するようにしました。

【66931】Re:新規社員IDの取得方法について
発言  Jaka  - 10/10/18(月) 9:29 -

引用なし
パスワード
   >>=SUMPRODUCT(MAX((A1:A27>=10000)*(A1:A27<20000)*(A1:A27)))
>>=SUMPRODUCT(MAX((A1:A27>=20000)*(A1:A27<30000)*(A1:A27)))

これは、VBAからでもこんな感じで実行できます。

aa = Application.Evaluate("SUMPRODUCT(MAX((A1:A27>=10000)*(A1:A27<20000)*(A1:A27)))")

2607 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free