Excel VBA質問箱 IV

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

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


9244 / 13646 ツリー ←次へ | 前へ→

【28474】数値の入力規則 BOCOTT 05/9/7(水) 15:08 質問[未読]
【28475】Re:数値の入力規則 Jaka 05/9/7(水) 15:21 発言[未読]
【28477】Re:数値の入力規則 BOCOTT 05/9/7(水) 15:44 質問[未読]
【28478】Re:数値の入力規則 Jaka 05/9/7(水) 16:21 発言[未読]
【28479】Re:数値の入力規則 BOCOTT 05/9/7(水) 16:28 質問[未読]
【28481】Re:数値の入力規則 Jaka 05/9/7(水) 16:44 発言[未読]
【28504】Re:数値の入力規則 BOCOTT 05/9/8(木) 9:58 お礼[未読]
【28483】Re:数値の入力規則 Komo 05/9/7(水) 18:44 発言[未読]
【28505】Re:数値の入力規則 BOCOTT 05/9/8(木) 10:02 お礼[未読]

【28474】数値の入力規則
質問  BOCOTT  - 05/9/7(水) 15:08 -

引用なし
パスワード
   こんにちは。

マクロで以下のことをしてます。
・列ごとに入力規則をしてます。(文字列の最大文字数や数値の列など)
・基本的にシートに保護をかけており、必要な時に保護を解除後、操作し、
 完了後にまた保護をかけています。

その入力規則の文字列まわりはよいのですが
数値の列がうまく動きません。
数値をいれても、エラーになってしまうのです。
シートの保護が何か関係するのでしょうか?


数値の入力規則部分は以下のようにしてます。
    With Selection.Validation
      .Delete
      .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
      Formula1:="1", Formula2:="50"
      .IgnoreBlank = True
      .InCellDropdown = True
      .InputTitle = ""
      .ErrorTitle = ""
      .InputMessage = ""
      .ErrorMessage = "数値以外が入力されました。"
      .IMEMode = xlIMEModeNoControl
      .ShowInput = True
      .ShowError = True
    End With

何に原因があるのか、全然検討がつかず困っております。
どなたか教えて頂けたら幸いです。
よろしく御願い致しますm(__)m。

【28475】Re:数値の入力規則
発言  Jaka  - 05/9/7(水) 15:21 -

引用なし
パスワード
   こんにちは。

"数値以外が入力されました。"
と言うより
1〜50以外が入力されました。になってますけど。

どんな風にシートを保護したのかわからないので、シート保護状態では試してません。
セルのロックなどは外してあるのでしょうか?(山勘)

【28477】Re:数値の入力規則
質問  BOCOTT  - 05/9/7(水) 15:44 -

引用なし
パスワード
   Jaka さん:
お返事有り難うございます!
確かに、1〜50の間の数値指定になってますね。
すみません。いろいろ試しているいちのソースが変わってました・・・。

シートの保護は
ActiveSheet.Protect UserInterfaceOnly:=False
で、保護の解除は
ActiveSheet.Unprotect
でしております。

オープン時に列に入力規則を設定しており
1.文字列の列は最大文字数を
2.数値の列には数値以外入力不可
を設定したいのです。
同じタイミングで設定しているのに
1.はできているのに、2.ができず・・・。
見た目、「1」(半角)を入力しているように見えるのに
エラーになるのです。

何が悪いのか見当がつかずに(T_T)。
宜しくお願いしますm(__)m。

【28478】Re:数値の入力規則
発言  Jaka  - 05/9/7(水) 16:21 -

引用なし
パスワード
   書式が文字列になっているとか...。

【28479】Re:数値の入力規則
質問  BOCOTT  - 05/9/7(水) 16:28 -

引用なし
パスワード
   Jaka さん:
お返事有り難うございます。
書式というのはセルの書式なのでょうか(>_<)?
With Selection.Validation
      .Add Type:=xlValidateWholeNumber
End With
で、設定は数値という意味だと思っていたのですが・・・。
もしかして、キーボードのでしょうか?

【28481】Re:数値の入力規則
発言  Jaka  - 05/9/7(水) 16:44 -

引用なし
パスワード
   セルの書式です。
文字列に設定したセルに数値を入力しても数値と認識してくれません。
ただ、標準設定のセルに数値を入力後、文字列にしてもこの時だけ数値と認識してくれます。(セルを書き換えると文字扱いになるけど)

【28483】Re:数値の入力規則
発言  Komo  - 05/9/7(水) 18:44 -

引用なし
パスワード
   ▼BOCOTT さん:
今晩は

>マクロで以下のことをしてます。
>・列ごとに入力規則をしてます。(文字列の最大文字数や数値の列など)
>・基本的にシートに保護をかけており、必要な時に保護を解除後、操作し、
> 完了後にまた保護をかけています。
>

全容がわからないままの返事で御免なさい。
私も、保護をかけてマクロを動かそうとしたのですが、「エラー」になります。
必ず、マクロを実行する時には、Unprotectにしないと「エラー」が出ます。
Sheet(X).Unprotectを入れることで、小生はいけています。

部分的な手入力を可能にするには、書式設定で範囲選択したところを「ロック」を
外すして保護を事前にかけておくと、手入力も可能になります。

【28504】Re:数値の入力規則
お礼  BOCOTT  - 05/9/8(木) 9:58 -

引用なし
パスワード
   Jaka さん:

お返事有り難うございます!
マクロでセルの書式を数値に設定する処理をいれてみたら出来ました!!
とりあえずエラーを回避できました!が
なぜ、文字列になっていたのか分りません・・・。
どこか悪いのかもう少しソースを追ってみます。
アドバイス有り難うございました!!

【28505】Re:数値の入力規則
お礼  BOCOTT  - 05/9/8(木) 10:02 -

引用なし
パスワード
   Komo さん:

おはようございます!
お返事有り難うございますm(__)m。

はじめシートに保護をかけたままマクロを実行して
エラーがでる部分ではまってました・・・。
ここの過去ログを参照させてもらって
ActiveSheet.Unprotectを知りました。

まだまだ初心者なのでまた質問すると思います。
その節はどうぞ宜しくお願いいたします!!

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