• ベストアンサー

テキスト氏名、日付とExcel表の連動

ユーザーフォームのテキスト氏名、日付1、日付2を入力したらExcel表のマッチした氏名行の日付を○印で入力するようなVBAのコードがありますでしょうか。どなたかご教授のほどよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

途中まででも出来ているのでしょうか、最初から作ってくれ? しばらくお付き合いしますが、まず >日付1、日付2を入力したら ではなく、入力後、ボタンを押したらにしましょう、ミスが少なくなります。 ここで、3行目が数値なのか、日付なのかが問題です。 この部分は、同じタイプを入力させるべきですね。 更に、テキストフォームでなく、リストボックスを使いましょう。 入力ミスがなくなりますし、コードを書く上でエラー処理が必要でなくなります。 テキスト氏名は A列の中から選択 日付は     3行目から選択するようにすれば それぞれに、リストインデックスが数値で得られますので、何行目の何列目というのは 検索をかける必要なく得られます。 それと、添付の画像が印刷か何かの為に必要な様式ですよね、私であれば、別途  A  B   C 氏名 日付1 日付2 ・・・・ とデータを確保するシートを準備して、フォーム上のボタンを押すとデータが記録されていく 表示されているシートには、関数で所定の位置に○が表示される様にしますが 如何でしょうか?

kuma0220
質問者

お礼

有難うございます。フォーム内の入力内容を別シート写しその後の関数で本来のシートにマークでできるよう頑張ります。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

No1です。ユーザーフォームを使わずに一案です。 データ入力用のシートを準備します(仮に Sheet2)  A   B    C   D   E 氏名  日付1  日付2 作業列 作業列 うめだ  1/3   1/7 ・・・・ と入力していきます D列には =A2&B4 E列には =A2&C2 と入れてたっぷりと下までコピーしておきます。 目的のシートの3行目には 日付で入力します。 表示形式で 日だけの表示にすれば、見た目は同じになります。 B4セルに =IF(COUNTIF(Sheet2!$D:$E,$A4&B$3),"○","") といれて右へコピー、下へコピーしておけば、Sheet2にデータを入力するだけで ご希望のセルに○が表示されます。 ユーザーフォームで入力するより、セルに直接入力した方が簡単でしょうし 修正も簡単ですよ。 また、入力したデータは、消去せずにず~と残しておくと後あと、便利です。

kuma0220
質問者

お礼

有難うございます。簡単そうですのでやってみます。

関連するQ&A