Excel VBA質問箱 IV

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

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


13239 / 13644 ツリー ←次へ | 前へ→

【6317】セルの移動について mini 03/6/24(火) 10:29 質問
【6318】Re:セルの移動について こうちゃん 03/6/24(火) 10:47 回答
【6328】Re:セルの移動について mini 03/6/24(火) 16:17 質問
【6330】Re:セルの移動について こうちゃん 03/6/24(火) 16:35 回答
【6343】Re:セルの移動について mini 03/6/25(水) 12:59 質問
【6344】Re:セルの移動について こうちゃん 03/6/25(水) 13:51 発言
【6404】Re:セルの移動について mini 03/6/27(金) 13:40 お礼
【6409】Re:セルの移動について こうちゃん 03/6/27(金) 14:31 発言
【6412】Re:セルの移動について ぴかる 03/6/27(金) 17:49 発言

【6317】セルの移動について
質問  mini E-MAIL  - 03/6/24(火) 10:29 -

引用なし
パスワード
   すいません、過去の質問を検索したんですが、
うまく見つけられないので、どなたか教えてください。

在庫表を作成中ですが、日々入力するところはほぼ、
日付と出荷数なんで、日付を入力してENTERキーを
押したら出荷数のセルまで移動するように設定したいんです。

   A| B | C | D | E | F|
  月日|生産数|入荷数|出荷数|在庫数|備考|
3|6/24|       | 40 |
4|6/25|       | 100 |

例)6/24と入力してENTERキーを押したらD3へ移動。
  6/25と入力してENTERキーを押したらD4へ移動。

宜しくおねがいします。

MINIより

【6318】Re:セルの移動について
回答  こうちゃん E-MAIL  - 03/6/24(火) 10:47 -

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

>在庫表を作成中ですが、日々入力するところはほぼ、
>日付と出荷数なんで、日付を入力してENTERキーを
>押したら出荷数のセルまで移動するように設定したいんです。
>
>   A| B | C | D | E | F|
>  月日|生産数|入荷数|出荷数|在庫数|備考|
>3|6/24|       | 40 |
>4|6/25|       | 100 |
>
>例)6/24と入力してENTERキーを押したらD3へ移動。
>  6/25と入力してENTERキーを押したらD4へ移動。

こんな感じでいいのかな?
該当のシートのモジュールに書いてください。
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 Then
    Cells(Target.Row, 4).Select
  ElseIf Target.Column = 4 Then
    Cells(Target.Row + 1, 1).Select
  End If
End Sub

【6328】Re:セルの移動について
質問  mini E-MAIL  - 03/6/24(火) 16:17 -

引用なし
パスワード
   こうちゃん さんへ

>該当のシートのモジュールに書いてください。
>Private Sub Worksheet_Change(ByVal Target As Range)
>  If Target.Column = 1 Then
>    Cells(Target.Row, 4).Select
>  ElseIf Target.Column = 4 Then
>    Cells(Target.Row + 1, 1).Select
>  End If
>End Sub

回答ありがとうございます。早速試してみましたら、
うまくいきました。
例で挙げていますセルは実際のセルとは違うので、
あつかましいのですが、上記コードの説明を教えて頂けたら
と思うのですが。だめでしょうか?何せど素人なもので・・・。

miniより

【6330】Re:セルの移動について
回答  こうちゃん E-MAIL  - 03/6/24(火) 16:35 -

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

'ワークシートの変更イベント
>>Private Sub Worksheet_Change(ByVal Target As Range)
   '変更時点の列がもしも1だったら
>>  If Target.Column = 1 Then
     '変更のあったセルの行(ここではTarget.Row)で4列のセルを選択
>>    Cells(Target.Row, 4).Select
   'そうではなくて変更時点の列が4だったら
>>  ElseIf Target.Column = 4 Then
     '変更のあったセルの行の下の行で(ここではTarget.Row)で1列のセルを選択
>>    Cells(Target.Row + 1, 1).Select
>>  End If
>>End Sub

>例で挙げていますセルは実際のセルとは違うので、
どう違うんでしょう?列位置が違うとかならコード中の4や1を変更してください。
あとは実際のものをお教えいただかないと説明しようがありませんね。

【6343】Re:セルの移動について
質問  mini E-MAIL  - 03/6/25(水) 12:59 -

引用なし
パスワード
   こうちゃん さんへ

またまた親切にご説明ありがとうございます。

>>例で挙げていますセルは実際のセルとは違うので、
>どう違うんでしょう?列位置が違うとかならコード中の4や1を変更してください。
>あとは実際のものをお教えいただかないと説明しようがありませんね。

列位置や行位置が違うという意味です。これはこうちゃんさんの
説明で応用できると思います。

最後にもう一つ教えて下さい!

この内容を沢山ある全てのシートに(ブックにということでしょうか)
適用したいんですが、このままthis workbookに登録してもだめでした。
何か他にコードが必要なんでしょうか?

【6344】Re:セルの移動について
発言  こうちゃん E-MAIL  - 03/6/25(水) 13:51 -

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

>この内容を沢山ある全てのシートに(ブックにということでしょうか)
>適用したいんですが、このままthis workbookに登録してもだめでした。
>何か他にコードが必要なんでしょうか?
前の例ではシートチェンジイベントにコード書いてますので、ThisWorkbookにこのままではだめですね。ブックのシートチェンジイベントに登録する必要があります。
その場合は、変更のあったシートにより処理を変更する必要がありますね。
まえのコードのセル指定に、シート指定(下記例では sh を使用して)する必要があるかも・・
(すべてのシートで入力位置が同じなんですか?)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

【6404】Re:セルの移動について
お礼  mini E-MAIL  - 03/6/27(金) 13:40 -

引用なし
パスワード
   こうちゃん さんへ

お礼が遅くなってすいませんでした。
親切なアドバイスのおかげで時間がかかりましたが、
何とかできそうです。本当にありがとうございます。
助かりました!!

>まえのコードのセル指定に、シート指定(下記例では sh を使用して)
する必要があるかも・・
>(すべてのシートで入力位置が同じなんですか?)

ちなみに、全てのシートで入力位置が同じなら、他に方法が
あるんでしょうか?

【6409】Re:セルの移動について
発言  こうちゃん E-MAIL  - 03/6/27(金) 14:31 -

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

>>(すべてのシートで入力位置が同じなんですか?)
>
>ちなみに、全てのシートで入力位置が同じなら、他に方法が
>あるんでしょうか?
あ、いやそういう意味ではなくて、入力シートが複数あるのか?という単純な疑問です。

#ちなみに、他にも方法はあると思いますよ。(私に思いつかないだけで^^;)

【6412】Re:セルの移動について
発言  ぴかる  - 03/6/27(金) 17:49 -

引用なし
パスワード
   miniさん、こうちゃんさん、こんにちは。

こちらも参考になるじゃないかと思います。よかったら、ご確認を!
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=11524;id=Excel
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=8776;id=Excel

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=36;id=FAQ
↑ソフトの入力設定→入力範囲ロックにて入力エリアを指定する事が出来ます。
ダウンロード後、おためしコーナーにて体験してみて下さい。
パスワードは、[PIKARU]です。

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