アプリ版:「スタンプのみでお礼する」機能のリリースについて

TABキーを押すと
A1→A2→A3→A4→B1→B2→B3→B4またA1・・・と
この8個のセルだけを移動するような方法はありますでしょうか?
どなたか宜しくお願いします。

A 回答 (8件)

単純にTABキーの移動制御のみであれば。



■ThisWorkBookモジュールに
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{TAB}"
End Sub

■目的シートのSheetモジュールに
Private Sub Worksheet_Activate()
Application.OnKey "{TAB}", "MyTab"
End Sub

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

■標準モジュールに
Sub MyTab()
If Not TypeName(Selection) Like "Range" Then Exit Sub
If Intersect(Selection, Range("A1:B3,A4")) Is Nothing Then
Range("A1").Activate
ElseIf Selection.Address(0, 0) = "A4" Then
Range("B1").Activate
Else
Selection.Offset(1).Activate
End If
End Sub

イベントプロシージャ及びモジュールへの記述については下記参考にされてください。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
    • good
    • 2
この回答へのお礼

何度も詳しく回答いただきありがとうございます。素人ゆえ理解に二日かかってしまいお礼が遅くなり失礼しました。
また何かありましたら宜しくお願いします。

お礼日時:2006/04/13 23:34

…度々すみません。

解除用、もうひとつ必要でした。
■ThisWorkBookモジュールに
Private Sub Workbook_Deactivate()
Application.OnKey "{TAB}"
End Sub
    • good
    • 1

VBAということなので


シートのイベント・プロシージュアーに
Private Sub Worksheet_Change(ByVal Target As Range)
MoveAfterReturnDirection = xlToRight
If Target.Column = 4 Then
Cells(Target.Row + 1, 1).Select
End If
If Target.Column = 4 And Target.Row = 2 Then
Cells(1, 1).Select
End If
End Sub
でうまくいくようです。セル移動は
TAB
ENTER

でもOK。
MoveAfterReturnDirection = xlToRight は用済みのプログラム上の
箇所(質問で言っている入力が終わったとか)で、下方向に戻す必要があるかもしれませんので注意。
    • good
    • 0
この回答へのお礼

詳しい回答ありがとうございました。無事解決しました。

お礼日時:2006/04/13 23:35

申し訳ありません。

No.4レス、凡ミスありました。
>[Alt]+[F4]キー
ではなく、[F4]キーのみです。(…終了させてどーする^ ^;)
と、これだけではなんなので、ついでですが、
どうしてもTABキーに拘られる場合、
VBAでApplication.OnKeyを使って[TAB]キーにマクロを割り当てれば、可能です。
その場合、WorksheetやThisWorkbookのイベントマクロを使う形になります。
具体的なサンプルを提示したほうがいいでしょうか?
    • good
    • 0

こんにちは。


順番は
>A1→A2→A3→A4→B1→B2→B3→B4
なのでしょうか?
シートの保護をかけた場合でも、TABキーだとA1→B1→A2・・・と移動します。

Enterキーでの移動で良ければ、ScrollAreaを設定すればできると思います。
ただ、その場合は画面スクロールもできなくなりますから、それでも良ければ、ですけど。

該当シートタブを右クリック。[コードの表示]でVBEが起動します。
[Alt]+[F4]キーでプロパティウィンドウが表示されます。
ScrollArea の欄右側に A1:B4 と入力。です。
    • good
    • 0

非常に原始的ですが・・・。



A1:B4を範囲選択してやれば、ブロックカーソルはご希望の動きをします。が、間違ってDELキーを押してしまうと範囲内のデータが一瞬にして全部消えます。

この回答への補足

回答ありがとうございます。

説明がたりなかったのですが、同じシート内にボタンにマクロを登録してあるので、それの動きを邪魔しない方法があればと思いまして。もし良い方法を知ってましたら再度回答いただければ助かります。

補足日時:2006/04/11 23:32
    • good
    • 0

A1:B4を選択した状態で、


[書式]-[セル]-[保護]の[ロック]をOFF。
[ツール]-[保護]-[シートの保護]。

この回答への補足

回答ありがとうございます。
説明がたりなかったのですが、同じシート内にボタンにマクロを登録してあるので、それの動きを邪魔しない方法があればと思いまして。もし良い方法を知ってましたら再度回答いただければ助かります。

補足日時:2006/04/11 23:16
    • good
    • 0

そのセルを選択した状態で右クリック


セルの書式設定=>保護=>ロックを外し、

シートに保護をかけます

この回答への補足

回答ありがとうございます。
説明がたりなかったのですが、同じシート内にボタンにマクロを登録してあるので、それの動きを邪魔しない方法があればと思いまして。もし良い方法を知ってましたら再度回答いただければ助かります。

補足日時:2006/04/11 23:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A