Excel VBA質問箱 IV

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

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


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

【18120】入力時にセルスキップしたい ackkn 04/9/16(木) 9:02 質問[未読]
【18123】Re:入力時にセルスキップしたい IROC 04/9/16(木) 9:57 回答[未読]
【18124】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 10:16 発言[未読]
【18128】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 10:29 発言[未読]
【18129】Re:入力時にセルスキップしたい IROC 04/9/16(木) 10:36 回答[未読]
【18131】Re:入力時にセルスキップしたい Jaka 04/9/16(木) 11:03 回答[未読]
【18133】Re:入力時にセルスキップしたい こもれび 04/9/16(木) 11:59 回答[未読]
【18140】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 13:35 発言[未読]
【18141】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 13:39 発言[未読]
【18157】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 16:24 お礼[未読]
【18138】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 13:25 発言[未読]
【18142】Re:入力時にセルスキップしたい IROC 04/9/16(木) 13:41 回答[未読]
【18146】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 13:50 発言[未読]
【18147】Re:入力時にセルスキップしたい IROC 04/9/16(木) 13:52 回答[未読]
【18156】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 16:18 発言[未読]
【18130】Re:入力時にセルスキップしたい ぴかる 04/9/16(木) 10:38 発言[未読]
【18143】Re:入力時にセルスキップしたい ackkn 04/9/16(木) 13:42 お礼[未読]

【18120】入力時にセルスキップしたい
質問  ackkn  - 04/9/16(木) 9:02 -

引用なし
パスワード
   どなたかご教示下さい、よろしくお願いします。
セルに値を入力していく際に、特定のセルをスキップしたいのですが、何かよい方法はないでしょうか?
以下に例を挙げます。
下図のような形で、A列 * の所に値を入力し、右[→]キーで移動した場合に、B列の - をスキップしてC列の * に移動させたいのです。

列→ A B C D E F G
   * - * - * - *

よろしくお願いします。

【18123】Re:入力時にセルスキップしたい
回答  IROC  - 04/9/16(木) 9:57 -

引用なし
パスワード
   changeイベントで、こんな感じで出来ませんか?

select case target.address 0,0
case "A1"
  Range("C1").select
case "C1"
  Range("E1").select
End select

【18124】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 10:16 -

引用なし
パスワード
   ▼IROC さん:
>changeイベントで、こんな感じで出来ませんか?
>
>select case target.address 0,0
>case "A1"
>  Range("C1").select
>case "C1"
>  Range("E1").select
>End select
IROC さん、こんにちは。
早速のレスありがとうございます。
直ぐにトライしてみます。

【18128】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 10:29 -

引用なし
パスワード
   ▼ackkn さん:
>▼IROC さん:
>>changeイベントで、こんな感じで出来ませんか?
>>
>>select case target.address 0,0
>>case "A1"
>>  Range("C1").select
>>case "C1"
>>  Range("E1").select
>>End select
>IROC さん、こんにちは。
>早速のレスありがとうございます。
>直ぐにトライしてみます。
感じは掴めたのですが、ダメです!
と言うのは、私の説明がまずかったのですが、A1のみではなくA列→C列のように
下へずーっと連続して入力するのです。(500行)
Cells とか Offset とか With とか色々と考えたのですが回答にまで結び付きませんでした、よろしくお願いします。

【18129】Re:入力時にセルスキップしたい
回答  IROC  - 04/9/16(木) 10:36 -

引用なし
パスワード
   列ごとならこんな感じで・・

select case target.column
case 1,3
  target.offset(0,2).select
case 5
  target.offset(0,3).select
End select

【18130】Re:入力時にセルスキップしたい
発言  ぴかる  - 04/9/16(木) 10:38 -

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

いろんなやり方の中のひとつ、↓をよかったらお試し下さい。
(入力設定→入力範囲ロック機能)
おためしコーナーにて、まず体験してみて下さい。
Win.XP・XL2002〜は、残念ながらセッティング出来ません。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=50;id=FAQ

【18131】Re:入力時にセルスキップしたい
回答  Jaka  - 04/9/16(木) 11:03 -

引用なし
パスワード
   2つ飛び等の事は考えていません。(*--*こんなのとか)
適当に調整して下さい。

シートモジュール

Private Sub Worksheet_Activate()
  Application.OnKey "{RIGHT}", "migi"
End Sub

Private Sub Worksheet_Deactivate()
  Application.OnKey "{RIGHT}"
End Sub

標準モジュール

Sub migi()
  If ActiveCell.Column < 255 Then
    If ActiveCell.Offset(, 1).Value = "-" Then
     ActiveCell.Offset(, 2).Select
    Else
     ActiveCell.Offset(, 1).Select
    End If
  ElseIf ActiveCell.Column <> 256 Then
    ActiveCell.Offset(, 1).Select
  End If
End Sub

【18133】Re:入力時にセルスキップしたい
回答  こもれび  - 04/9/16(木) 11:59 -

引用なし
パスワード
   こもれびです

根本的な話になってしまうのですが…
完全に固定なのであれば(*-*-*)
入力しない列を「非表示」にしてしまう
ということではいかがでしょうか。

「行によって飛び方が違うよ」ってことになると使えません

Sub HideColumn()
'
' 列の非表示
'      2004/9/16
  Columns("C:C").Select
  Selection.EntireColumn.Hidden = True
End Sub

【18138】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 13:25 -

引用なし
パスワード
   ▼IROC さん:
>列ごとならこんな感じで・・
>
>select case target.column
>case 1,3
>  target.offset(0,2).select
>case 5
>  target.offset(0,3).select
>End select
IROC さん、なりました!
でも、カーソル移動の際もスキップさせたいので、SelectionChangeイベントなる物を見つけて、同じようにやったのですが(下記コード)、6へ移動すると12までスキップしてしまい(当然の結果)8で止めれません。
何とか止めて6→8→10→12と移動させたいのですが...
よろしくお願いします。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Select Case Target.Column
    Case 6, 8, 10, 13, 15, 17
      Target.Offset(0, 2).Select
  End Select
End Sub

【18140】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 13:35 -

引用なし
パスワード
   ▼こもれび さん:
>こもれびです
>
>根本的な話になってしまうのですが…
>完全に固定なのであれば(*-*-*)
>入力しない列を「非表示」にしてしまう
>ということではいかがでしょうか。
>
>「行によって飛び方が違うよ」ってことになると使えません
>
>Sub HideColumn()
>'
>' 列の非表示
>'      2004/9/16
>  Columns("C:C").Select
>  Selection.EntireColumn.Hidden = True
>End Sub
こもれびさん、ありがとうございます。
非表示にすると、当然印字されませんから、印字する際に表示させて印字し、
終わればまた非表示にすると言うことになりますよね?

【18141】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 13:39 -

引用なし
パスワード
   ▼Jaka さん:
>2つ飛び等の事は考えていません。(*--*こんなのとか)
>適当に調整して下さい。
>
>シートモジュール
>
>Private Sub Worksheet_Activate()
>  Application.OnKey "{RIGHT}", "migi"
>End Sub
>
>Private Sub Worksheet_Deactivate()
>  Application.OnKey "{RIGHT}"
>End Sub
>
>標準モジュール
>
>Sub migi()
>  If ActiveCell.Column < 255 Then
>    If ActiveCell.Offset(, 1).Value = "-" Then
>     ActiveCell.Offset(, 2).Select
>    Else
>     ActiveCell.Offset(, 1).Select
>    End If
>  ElseIf ActiveCell.Column <> 256 Then
>    ActiveCell.Offset(, 1).Select
>  End If
>End Sub
Jaka さん、ありがとうございます。
これだとセル移動でもOKですよね!
早速トライしてみます。

【18142】Re:入力時にセルスキップしたい
回答  IROC  - 04/9/16(木) 13:41 -

引用なし
パスワード
   >でも、カーソル移動の際もスキップさせたいので、
>SelectionChangeイベントなる物を見つけて、
>同じようにやったのですが(下記コード)、
>6へ移動すると12までスキップしてしまい(当然の結果)8で止めれません。
>何とか止めて6→8→10→12と移動させたいのですが...

説明が矛盾してますよ。

その仕様だと、カーソルがあっただけでジャンプするので、
入力できなくなるのは当然です。

【18143】Re:入力時にセルスキップしたい
お礼  ackkn  - 04/9/16(木) 13:42 -

引用なし
パスワード
   ▼ぴかる さん:
>ackknさん、こんにちは。
>
>いろんなやり方の中のひとつ、↓をよかったらお試し下さい。
>(入力設定→入力範囲ロック機能)
>おためしコーナーにて、まず体験してみて下さい。
>Win.XP・XL2002〜は、残念ながらセッティング出来ません。
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=50;id=FAQ
ひかるさん、ありがとうございます。
遅くなってごめんなさい!m(_ _)m
ゆっくり体験させて貰います。

【18146】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 13:50 -

引用なし
パスワード
   ▼IROC さん:
>>でも、カーソル移動の際もスキップさせたいので、
>>SelectionChangeイベントなる物を見つけて、
>>同じようにやったのですが(下記コード)、
>>6へ移動すると12までスキップしてしまい(当然の結果)8で止めれません。
>>何とか止めて6→8→10→12と移動させたいのですが...
>
>説明が矛盾してますよ。
>
>その仕様だと、カーソルがあっただけでジャンプするので、
>入力できなくなるのは当然です。
判ります(IROCさんが仕様と言われているのは、私が載せたコードのままだとと言うことですよね)、だからその当然を何とか止めて6→8→10→12と移動させたいのです。
分かって頂けたでしょうか?
よろしくお願いします。

【18147】Re:入力時にセルスキップしたい
回答  IROC  - 04/9/16(木) 13:52 -

引用なし
パスワード
   >判ります(IROCさんが仕様と言われているのは、
>私が載せたコードのままだとと言うことですよね)
>、だからその当然を何とか止めて6→8→10→12と移動させたいのです。
>分かって頂けたでしょうか?


コードの問題ではなく、仕様(日本語)が矛盾してます。

よく考えてみて下さい。

【18156】Re:入力時にセルスキップしたい
発言  ackkn  - 04/9/16(木) 16:18 -

引用なし
パスワード
   ▼IROC さん:
>>判ります(IROCさんが仕様と言われているのは、
>>私が載せたコードのままだとと言うことですよね)
>>、だからその当然を何とか止めて6→8→10→12と移動させたいのです。
>>分かって頂けたでしょうか?
>
>
>コードの問題ではなく、仕様(日本語)が矛盾してます。
>
>よく考えてみて下さい。
申し訳ありません、考えましたが判りません。
具体的に指摘して頂けないでしょうか。
よろしくお願いします。

【18157】Re:入力時にセルスキップしたい
お礼  ackkn  - 04/9/16(木) 16:24 -

引用なし
パスワード
   ▼Jaka さん:
>2つ飛び等の事は考えていません。(*--*こんなのとか)
>適当に調整して下さい。
>
>シートモジュール
>
>Private Sub Worksheet_Activate()
>  Application.OnKey "{RIGHT}", "migi"
>End Sub
>
>Private Sub Worksheet_Deactivate()
>  Application.OnKey "{RIGHT}"
>End Sub
>
>標準モジュール
>
>Sub migi()
>  If ActiveCell.Column < 255 Then
>    If ActiveCell.Offset(, 1).Value = "-" Then
>     ActiveCell.Offset(, 2).Select
>    Else
>     ActiveCell.Offset(, 1).Select
>    End If
>  ElseIf ActiveCell.Column <> 256 Then
>    ActiveCell.Offset(, 1).Select
>  End If
>End Sub
Jaka さん、ありがとうございました。
バッチリです!
これを応用して、hidariを追加して解決しました。
本当にありがとうございました。

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