Excel VBA質問箱 IV

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

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


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

【11019】保護したセルをENTERキーで飛ばしたい ちょび 04/2/24(火) 15:39 質問
【11021】Re:保護したセルをENTERキーで飛ばしたい IROC 04/2/24(火) 16:05 回答
【11030】Re:保護したセルをENTERキーで飛ばしたい ちょび 04/2/24(火) 17:26 質問
【11032】Re:保護したセルをENTERキーで飛ばしたい ちょび 04/2/24(火) 18:09 お礼
【11022】Re:保護したセルをENTERキーで飛ばしたい つん 04/2/24(火) 16:11 回答
【11025】Re:保護したセルをENTERキーで飛ばしたい アイエネス 04/2/24(火) 16:42 発言
【11028】おはずかしや つん 04/2/24(火) 17:02 発言
【11023】Re:保護したセルをENTERキーで飛ばしたい ぴかる 04/2/24(火) 16:27 回答
【11034】Re:保護したセルをENTERキーで飛ばしたい アイエネス 04/2/24(火) 18:25 回答

【11019】保護したセルをENTERキーで飛ばしたい
質問  ちょび  - 04/2/24(火) 15:39 -

引用なし
パスワード
   初めて書き込み致します。
仕事で簡単な入力シートを作成しています。そのシートで数列、入力出来ないようにセルの保護をしたのですが、出来れば入力の際にENTERキーを押したらその保護した列を飛ばして次の列に行くようにしたいのですが、やり方が解りません。上手く説明出来なくて申しわけ無いのですが、
どなたか解る方がいらっしゃいましたら、教えて下さい。
お願い致します。

【11021】Re:保護したセルをENTERキーで飛ばしたい
回答  IROC  - 04/2/24(火) 16:05 -

引用なし
パスワード
   EnableSelection プロパティ の xlUnlockedCells で如何でしょうか? 

【11022】Re:保護したセルをENTERキーで飛ばしたい
回答  つん E-MAIL  - 04/2/24(火) 16:11 -

引用なし
パスワード
   ちょび さん、こんにちは

こんなんでどうでしょ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Locked = True Then
    Target.Offset(1, 0).Select
  End If

End Sub

とりあえず、選択されたセルにロックがかかってたら、
一個下のセルに移動。
「Target」が一番下のセルだった場合とかいろいろエラー処理は必要な気はするけど・・・

ど・・どうかなっ?

【11023】Re:保護したセルをENTERキーで飛ばしたい
回答  ぴかる  - 04/2/24(火) 16:27 -

引用なし
パスワード
   ちょびさん、みなさん、こんにちは。

↓ソフトの入力設定→入力範囲ロックにて入力エリアを指定する事が出来ます。
ダウンロードして頂いて、おためしコーナーにて体験してみて下さい。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=36;id=FAQ
パスワードは、[PIKARU]です。
但し、Win.XP・XL2002以降となると、多分出来ません。あしからずです。

今から帰宅なんで、もう対応出来ません。おってもなんも出来ませんが・・・。

【11025】Re:保護したセルをENTERキーで飛ばしたい
発言  アイエネス  - 04/2/24(火) 16:42 -

引用なし
パスワード
   つん さんへ

>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>
>  If Target.Locked = True Then
>    Target.Offset(1, 0).Select
>  End If
>
>End Sub
>
>とりあえず、選択されたセルにロックがかかってたら、
>一個下のセルに移動。
>「Target」が一番下のセルだった場合とかいろいろエラー処理は必要な気はするけど・・・
>
>ど・・どうかなっ?

参考にですが、このマクロでは、A列すべてロックを掛けた状態でも、252行ずつ止まります。つまりロックされているセルでも、止まります。理由はよくわかりませんが。
今回の様にロックされているのが数行であれば問題ないと思います。ちなみに、「Offset(1,0)」ではなく「Offset(0,1)」だと思われます。

>そのシートで数列、入力出来ないようにセルの保護をしたのですが、出来れば入力の際にENTERキーを押したらその保護した列を飛ばして次の列に行くようにしたいのですが

と列を飛ばすと言われてますので。
おせっかい申し訳ありません。

【11028】おはずかしや
発言  つん E-MAIL  - 04/2/24(火) 17:02 -

引用なし
パスワード
   アイエネス さん、こんにちは

>参考にですが、このマクロでは、A列すべてロックを掛けた状態でも、252行ずつ止まります。つまりロックされているセルでも、止まります。理由はよくわかりませんが。
>今回の様にロックされているのが数行であれば問題ないと思います。ちなみに、「Offset(1,0)」ではなく「Offset(0,1)」だと思われます。
>
>>そのシートで数列、入力出来ないようにセルの保護をしたのですが、出来れば入力の際にENTERキーを押したらその保護した列を飛ばして次の列に行くようにしたいのですが
>
>と列を飛ばすと言われてますので。
>おせっかい申し訳ありません。

ああ、ほんまですね・・・
きちんと読まずに、入力は下に向かって行くものと思いこんでおりました。

>A列すべてロックを掛けた状態でも、252行ずつ止まります。

の件も、何も処理してない(保護かロックの処理)もしてないシートで試すと、
その通りですね・・・
うーん、これはなんか不可解な感じですね。
ちなみに、何も処理してない素のシートは全セルにロックがかかってる状態なんだと、いまさらながらに気が付きました。
いえ、知ってはいたんですが、失念していたというか・・・

とにかく、私のコードはダメダメっちゅーことですね(>_<)
安易なコードを載せてしまいました。

アイエネスさんご指摘ありがとうございました。
ちょびさん、ごめんなさい(T_T)・・・修行しなおしてきます。

【11030】Re:保護したセルをENTERキーで飛ばしたい
質問  ちょび  - 04/2/24(火) 17:26 -

引用なし
パスワード
   みなさん、こんにちは。
早々とこんなに色々と答えが返ってくるなんて、チョビ感激でございます。
それでIROCさんの"EnableSelection〜"なんですけど、このプロパティってどのように開くのですか?(表現がちがうかしら・・・)
なにぶんマクロ・ビギナーなものですから(汗)スイマセン

あ、つんさん、そーなんです。セルは下ではなく、右に移動するように設定してあるんです〜。

【11032】Re:保護したセルをENTERキーで飛ばしたい
お礼  ちょび  - 04/2/24(火) 18:09 -

引用なし
パスワード
   皆様、色々と回答頂きまして有難うございました!
再度質問を飛ばした後にEnableSelectionの意味を調べて「あーでもない、こーでもない」と四苦八苦しながらマクロを作っていましたら、出来ました!

本当に有難うございましたぁ!
これで、帰れます・・・。

【11034】Re:保護したセルをENTERキーで飛ばしたい
回答  アイエネス  - 04/2/24(火) 18:25 -

引用なし
パスワード
   遅ればせながら、こういうのもありますので載せておきます。

まず、ThisWorkbookのコードに
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnKey "~", "test"
End Sub

そして、標準モジュールに
Sub test()
Application.ScreenUpdating = False
Do
 If ActiveCell.Column = 256 Then
  MsgBox "これより右の列で保護されていないセルはありません"
  Exit Sub
 End If
 ActiveCell.Offset(0, 1).Select
Loop Until ActiveCell.Locked = False
Application.ScreenUpdating = True
End Sub

です。
ちなみに、"test"の部分は標準モジュールのモジュール名なので、別のモジュール名にするときは、一緒に変えてあげてください
あっ、あと、テンキーのエンターを使う場合に上手くいかなければ、「Onkey "~"」の"~" を"{ENTER}"に変えてください。

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