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

初心者に毛が生えた状態です。エクセル2000を使っています。
ワークシートをWクリックするとユーザーフォームを表示するようにマクロの記述をしています。
ユーザーフォームをキャンセルボタン(×)で閉じるとシートのセルの中にカーソルが入った状態になります。
それをescキーを押した時のように、カーソルがセルの中に無い状態にしたいのです。
マクロの記録でescキーを押しても記録されないので、コードが分かりません。

ユーザーフォームの×ボタンを押したら、Wクリックする前の状態に戻すコードを教えてください。
よろしくお願いします。

A 回答 (3件)

回答1、myRangeです。



>下のコードにしましたが、カーソルが入ったままになります

ほんとうですか?
俄かには信じられないかったので、嫌々(笑)試してみました。
もちろん、上手くいきましたが。。。


●質問の意図は下記のようなことですよね●

お礼のコードは5行目のセルをダブルクリックしたらUserForm表示となっているので、

例えば、セルC5をダブルクリックしてUserFormを表示させ
UserFormの×(閉じるボタン)でUserFormを消した後
セルC5にカーソルがピコピコしてるのでそれを消したい。

で、あればお礼のコードで上手くいきます。

-------------------------------------------------------

■引数Cancelは、
正に質問のようなことをするためにあるものですから
それが上手くいかないということであれば
この引数Cancelは何の意味も持たないことになります。

何れにしろ、再度確認が必要でしょう。

以上です。
 
    • good
    • 0
この回答へのお礼

申し訳ありません。できました。
記述していないシートで試していました。
ありがとうございました。

お礼日時:2009/11/21 11:51

一番最後に「Enter」と入れれば「セルの中にカーソルが。

。。」
というのは解決されませんか。

で その後 もとの場所に戻したいのであれば
offsetで上に戻すとか。

そんなん いかがでしょうか。
    • good
    • 0
この回答へのお礼

単純なことですね!気がつきませんでした。
ありがとうございます。

お礼日時:2009/11/21 11:52

BeforeDoubleClickの引数CancelをTrueにセットすればいいでしょう。



例えば、セルB3をダブルクリックしたら、UserForm1を表示する場合。

'------------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Address = "$B$3" Then
     Cancel = True   '●これ
     UserForm1.Show
  End If
End Sub
'---------------------------------------------

セルを指定しないでUserFormを立ち上げると
通常のダブルクリックでのセル編集ができなくなりますので
上記のように、UserFormを立ち上げるためのセル、
または、セル範囲を決めておいた方がいいと思われます。
以上です。

この回答への補足

myRange様
回答ありがとうございます。
下のコードにしましたが、カーソルが入ったままになります。結果はNGです。

ユーザーフォームにはキャンセルボタンが無く、右上の×ボタンで消します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
''入力したい部分をWクリックするとユーザーフォームを表示する(4行目以下)
If Target.Row = 5 Then
行 = Target.Row '行番号を取得する
列 = Target.Column '列番号を取得する
Cancel = True  '●これ
    UserForm1.Show 'ユーザーフォームを表示する
End If

End Sub

補足日時:2009/11/20 17:09
    • good
    • 0

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