• 締切済み

Excelで、セルに値を5文字の文字列で取り込みたいのですが

5文字入力された段階でキーボードを叩いてもそれ以上文字が表示されない(入力がそれ以上できない)ようなプログラムを作ることは可能なのでしょうか? わかる方がいらっしゃれば、ご教授お願いいたします。 初心者のため、質問の仕方に不備があると思いますがご勘弁ください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1のご回答の線で、VBA化どうですか。 エクセルVBAではそこまではしないという全艇だと重います。 Sheetのイベントを見れば判るように、OnKey的なイベントが認められていません。 やるならTextBoxならあるので(KeyPressほか)やる途があるが、いかにも大げさです。 さらにAPIを使うと、そういうイベントは捉えられると思うが、そこまでしなくてもと思います。 >初心者のため、・・というのであれば、もうすこし、エクセルVBAの知識が広がってから考えたらどうですか。 初めは、要求は控えめにして、エクセルの課題を解決するのがよいと思います。どういうことが、エクセルVBAで難しいのか、これも 勉強を続けないと判らないのですが。 プログラムの世界で、初心者が思うことがすらすらできたら、上級プロだとおもいますよ。初心者が思うことは、決して易しいことではない場合がほとんどです。

x20ajus
質問者

お礼

お答えありがとうございます。 調べてみましたが、セルにはTextのkeypressイベントに相当するような機能はなさそうですね... >初めは、要求は控えめにして・・・のことなのですが、 言い訳じみてしまいますが今仕事で入力規制をかけたシートを作っておりまして、上司の方が上記のような作りにできないかなと申していたので... 新人なもので、どこまでができるかわからずここに質問してしまいました。 API、調べてみたいと思います。 貴重なご意見ありがとうございました。

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.2

こちらに投稿さえているということは なんとしてもプログラムで入力制限したいのでしょうか。 メニュー[データ][入力規則]-「設定」タブ 入力値の種類-文字列(長さ指定) では嫌ですか?

x20ajus
質問者

お礼

お答えありがとうございます。 入力規則で設定の場合、入力後にEnterを押した段階でエラーのメッセージなどを出せると思うのですが、6回目にキーボードを押した段階でそれ以上画面に表示させないようにしたいと思っています。 そういったことはプログラムでないとできないのかなと思いまして...

  • yoka1
  • ベストアンサー率48% (17/35)
回答No.1

「データ」⇒「入力規則」⇒「設定」で 「入力値の種類」を「文字列(長さ指定)」にして 「データ」を「次の値以下」に 「最大値」を「5」に設定すればOKです。

x20ajus
質問者

お礼

お答えありがとうございます。 返信内容が前の回答者の方と重複してしまいすみません。 入力規則で設定の場合、入力後にEnterを押した段階でエラーのメッセージなどを出せると思うのですが、6回目にキーボードを押した段階でそれ以上画面に表示させないようにしたいと思っています。 そういったことはプログラムでないとできないのかなと思いまして...

関連するQ&A