Excel VBA質問箱 IV

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

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


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

【15291】入力規則について VBA初心者 04/6/19(土) 19:09 質問[未読]
【15292】Re:入力規則について ichinose 04/6/19(土) 21:00 回答[未読]
【15294】Re:入力規則について ちょっと訂正 ichinose 04/6/19(土) 22:31 発言[未読]
【15293】Re:入力規則について かみちゃん 04/6/19(土) 21:04 発言[未読]

【15291】入力規則について
質問  VBA初心者  - 04/6/19(土) 19:09 -

引用なし
パスワード
   以下のようなことができるのか、
お分かりの方教えて下さい。

ある特定のセルのみ
大文字の英数字のみ入力可能とたいのですが
通常の入力規則だけではできないのでしょか?
(小文字の英字を入力させたくないのです。)

マクロで入力チェックを行えば
できるとは思うのですが、チェック対象が
かなり多いので、入力規則だけでできないかと
試行錯誤しております。

上記のようなケースの解決する方法が
わからなくて困っております。
どなたかご存知の方、教えて下さい。

以上宜しくお願いします。

【15292】Re:入力規則について
回答  ichinose  - 04/6/19(土) 21:00 -

引用なし
パスワード
   ▼VBA初心者 さん:
こんばんは。
>ある特定のセルのみ
>大文字の英数字のみ入力可能とたいのですが
>通常の入力規則だけではできないのでしょか?
>(小文字の英字を入力させたくないのです。)
>
>マクロで入力チェックを行えば
>できるとは思うのですが、チェック対象が
>かなり多いので、入力規則だけでできないかと
>試行錯誤しております。
>
>上記のようなケースの解決する方法が
>わからなくて困っております。
>どなたかご存知の方、教えて下さい。
>
>以上宜しくお願いします。

いくつかの前準備が必要です。
新規ブックに例題として、A1:A5を上記の入力規則を設定する事を
考えましょう!!

1.セルA1〜A5の書式設定を文字列に設定して下さい。

2.次に入力不可コードのリストをどこかにの列に作成します。

  以下のコードでJ1〜J219に作成してくれます。
'==========================================================
Sub testtest()
  With Range("j1:j255")
    .Formula = "=char(row())"
    .Value = .Value
    End With
  Union(Range("j48:j57"), Range("j65:j90")).Delete shift:=xlShiftUp
End Sub

勿論、手動で入力しても結構ですよ

3.セルA1〜A5を選択して、ご存知の入力規則ダイアログを表示させます。

4.入力値の種類を「ユーザー設定」にして下さい。

5.数式に以下を指定して下さい。

=IF(LEN(A1)=LENB(A1),AND(T(A1)=SUBSTITUTE(T(A1),$J$1:$J$219,"")))

6.これで「OK」ボタンをクリックして下さい。設定完了です。

確認してみて下さい。
私がテストした限りではOKでしたよ。

【15293】Re:入力規則について
発言  かみちゃん  - 04/6/19(土) 21:04 -

引用なし
パスワード
   こんちには。かみちゃん です。

直接的な回答ではありませんが。

>マクロで入力チェックを行えば
>できるとは思うのですが、チェック対象が
>かなり多いので、入力規則だけでできないかと

Changeeイベントで、チェック対象のセルのときだけチェックするようなマクロにすればいいと思います。
「かなり多い」というのは、ランダムなのでしょうか?何か規則性(特定の列とか、特定の行とか)があるのでしょうか?

【15294】Re:入力規則について ちょっと訂正
発言  ichinose  - 04/6/19(土) 22:31 -

引用なし
パスワード
   ▼ichinose さん:
>▼VBA初心者 さん:
>こんばんは。
>>ある特定のセルのみ
>>大文字の英数字のみ入力可能とたいのですが
>>通常の入力規則だけではできないのでしょか?
>>(小文字の英字を入力させたくないのです。)
>>
>>マクロで入力チェックを行えば
>>できるとは思うのですが、チェック対象が
>>かなり多いので、入力規則だけでできないかと
>>試行錯誤しております。
>>
>>上記のようなケースの解決する方法が
>>わからなくて困っております。
>>どなたかご存知の方、教えて下さい。
>>
>>以上宜しくお願いします。
>
>いくつかの前準備が必要です。
>新規ブックに例題として、A1:A5を上記の入力規則を設定する事を
>考えましょう!!
>
>1.セルA1〜A5の書式設定を文字列に設定して下さい。
>
>2.次に入力不可コードのリストをどこかにの列に作成します。
>
>  以下のコードでJ1〜J219に作成してくれます。
>'==========================================================
>Sub testtest()
>  With Range("j1:j255")
>    .Formula = "=char(row())"
>    .Value = .Value
>    End With
  Range("j39").Value = "''"
' シングルコーテーションは、↑こうしておかないと・・・
>  Union(Range("j48:j57"), Range("j65:j90")).Delete shift:=xlShiftUp
>End Sub


>
>勿論、手動で入力しても結構ですよ
>
>3.セルA1〜A5を選択して、ご存知の入力規則ダイアログを表示させます。
>
>4.入力値の種類を「ユーザー設定」にして下さい。
>
>5.数式に以下を指定して下さい。
>
>=IF(LEN(A1)=LENB(A1),AND(T(A1)=SUBSTITUTE(T(A1),$J$1:$J$219,"")))
>
>6.これで「OK」ボタンをクリックして下さい。設定完了です。
>
>確認してみて下さい。
>私がテストした限りではOKでしたよ。

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