• ベストアンサー

エクセル 式記入状態を外す方法

ダブルクリックで○をつけるようなプログラムを書いていて、実際にダブルクリックで○をつけるのですが、その後記入途中の状態となり、カーソルが出る状態となります。 その後にコマンドボタンを押すことが多いのですが、その状態(式の記入途中)からはボタンは押せないので、一回別の場所を選択して押すようにしております。 これをダブルクリック後すぐボタンが押せるように改善したいのですが、なにか解決策はございませんでしょうか。 下記が○を付けるプログラムです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    If Not Application.Intersect(Target, Range("○をつける範囲")) Is Nothing Then       If Target.Value = "" Then          Target.Value = "○"       Else          Target.ClearContents       End If    End If End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

最後に Cancel = True を追加。

opoon
質問者

お礼

有難うございます。完璧です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

最後にダミーで Cells(1,1).Select を入れればご希望の動きにはなります。

opoon
質問者

お礼

有難うございます。テキストボックスの裏にあるセルを指定して見栄えもよく無事解決致しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel マクロでの特殊文字入力方法

    マクロで特殊文字入力は出来ないのでしょうか? やりたい内容は、セルをダブルクリックした時に✓を表示させたいのです。 セルをダブルクリックした時に○を表示するマクロが、下記の通りである時、 ○の代わりに✓を表示させたいのですが、VBAで○の所に✓で書き換えると ?と表示されてしまいます。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Value = "○" Then .Value = "" Else .Value = "○" End If End With End Sub

  • エクセル VBA について

    エクセルで、 ダブルクリックしたら"*"を表示したい範囲に【入力】という名前をつけ、 ダブルクリックしたら9つ左のセルの内容を表示したい範囲に【金額】という名前をつけ、 二つの構文?をVisual Basicに作成したんですが、エラーが出てしまいます。 ひとつずつだと上手くいくのですが、なぜでしょうか? わかる方教えてください。 あと申し訳ないのですが、VBAはまったくわからないため、ネット上で構文をコピーして貼り付けました。 そんな者でもわかる修正の説明をお願いいたします。 以下が作成し、エラーとなってしまう構文です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const RangeName As String = "金額" If Target.Value = "" Then Target.Value = Target.Offset(0, -9).Value Cancel = True End If End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const RangeName As String = "入力" If Not Intersect(Range(RangeName), Target) Is Nothing Then Cancel = True If Target = "*" Then Target = "" Else Target = "*" End If End If End Sub

  • エクセルで特定のセルへの直接入力だけを禁止したいんです。

    過去の質問を参考に『セルをダブルクリックすると"○"と入力される』というマクロを○⇒●⇒-⇒  ⇒○⇒・・・として使っているんですが、ダブルクリックの度にセルが直接入力の状態(縦の棒の点滅)になってしまい、一度他のセルをクリックしないと次へ進めずに困っています。 良い方法ってあるのでしょうか? ちなみに使用しているマクロは Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const rng As String = "A1:A3" '処理対象のセル範囲 If Not Application.Intersect(Target, Range(rng)) Is Nothing Then If Target.Value = "" Then Target.Value = "○" ElseIf Target.Value = "○" Then Target.Value = "●" ElseIf Target.Value = "●" Then Target.Value = "-" Else Target.ClearContents End If End If End Sub というものです。 よろしくお願いします。

  • エクセル ダブルクリックで処理日の入力

    お世話になります。 先般、お教え頂きました別のダブルクリックイベントプロシージャと 下記の当日の日付を入力するという処理を同じシート上で行いたいのですが、VBエディターにどのように記述したら良いかわかりません。 当方、かなりの初心者です。 よろしくご教授くださいませ。 【新しく加えたい処理】 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("b4:C999")) Is Nothing Then Exit Sub If ActiveCell = "" Then ActiveCell = Date Cancel = True End If End Sub 【もともと使っている処理】 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("h1:h999")) Is Nothing Then With Target If .Value = "" Then .Value = "有" ElseIf .Value = "有" Then .Value = "無" ElseIf .Value = "無" Then .Value = "" End If End With ElseIf Not Intersect(Target, Range("i1:i999")) Is Nothing Then With Target If .Value = "" Then .Value = "要" ElseIf .Value = "要" Then .Value = "不要" ElseIf .Value = "不要" Then .Value = "" End If End With End If End Sub よろしくお願いします。

  • ダブルクリック・右クリックの操作方法

    勤務表作成してます。 A1に「ON・OFF」を表示します。 「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。 「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。 よろしくお願いします。 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = ActiveCell.Offset(-1, 0).Value If Target = Range("$A$1") Then Cancel = True If Range("$A$1").Value = "イベントON" Then Range("$A$1").Value = "イベントOFF" Else Range("$A$1").Value = "イベントON" End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End If End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = "1" ' If Target = Range("$A$1") Then ' Cancel = True ' ' If Range("$A$1").Value = "イベントON" Then ' Range("$A$1").Value = "イベントOFF" ' Else ' Range("$A$1").Value = "イベントON" ' End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub

  • エクセルVBAのイベントで質問です。

    ダブルクリックイベントで、G12:G31の範囲の文字列をB10:B27の範囲(最下行)に入れていくものを使っていますが、新たにH12:H31にある文字列もダブルクリックするとC10:C27の範囲(最下行)に入れていけるようにしたいと思います。 どのようにすればいいでしょうか。 ご存知の方いらっしゃればお教えいただけると助かります。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, _ Cancel As Boolean) Dim i As Long Dim flg As Boolean If Intersect(Target, Range("G12:G31")) Is Nothing Then Exit Sub If IsEmpty(Target.Value) Then Exit Sub With Worksheets("シートA") For i = 10 To 27 If .Range("B" & i).Value = "" Then .Range("B" & i).Value = Target.Value flg = True Exit For End If Next i If flg = False Then MsgBox .Name & " がいっぱいです。" End If End With Cancel = True End Sub

  • 値を変更後にセルがアクティブ状態に

    セルをダブルクリックして値を変えるマクロを作ったのですが 値を変更後にセルがアクティブ状態になってしまいます。 エンターを押したり他のセルをクリックすれば通常通りになるのですが、 VBAでも通常通りに戻すにはどうすればいいでしょうか? Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim mystr As String mystr = Target.Value If mystr = "Yes" Then Target.Value = "No" ElseIf mystr = "No" Then Target.Value = "Yes" End If End Sub を実行すると、 セルをクリックしてF2を押した時のような状態になってしまいます。 コードの最後に Target.Cells.Select を入れてみましたが、変わりませんでした。 スクショを撮ってみたのですが、カーソル?棒?が映りませんでした。

  • 型が一致しません

    特定のセルでダブルクリックすると「〇」が入り,再度ダブルクリックすると「〇」が消えるコードを調べ,以下のものです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Const rng As String = "A1:B3" '処理対象のセル範囲 If Not Application.Intersect(Target, Range(rng)) Is Nothing Then If Target.Value = "" Then Target.Value = "○" Else Target.ClearContents End If End If End Sub 試してみましたが,「実行時エラー13 型が一致しません」というものが出て,デバックというところをクリックすると,If Target.Value = "" Thenのところが黄色くなり矢印が出ていたのでここが問題かなと思うのですが,どのように修正すればいいのか分かりません。教えていただけると助かります。

  • エクセルVBA ダブルクリックした左隣の値を返す方法

    いつもお世話になっております。 あるワークシートにおいて、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) If ActiveCell.Column = 7 Then Target.Value = "希望" End If End Sub というマクロを記述することができました。 今度は、 G列のどこかのセルをダブルクリックすると、 同じ行のE列の値が、 ダブルクリックしたセルに入るようにしたいのです。 どのような記述をすればよいのか ご教示ください。

  • Private Sub Worksheet_BeforeDoubleC

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 4 Then Target.Value = Date End If If Target.Column = 5 Then Target.Value = Date End If End Sub これは、他の方の回答で4列と5列のどこかをダブルクリックすると日付が入力されました。 しかし、シートの保護を入れるとダブルクリックしても入力されません。 それで、例えば、B3セルとかC3セルとかの特定のセルをダブルクリックすると日付が入力されるようにできませんか?宜しくお願いします。

このQ&Aのポイント
  • 仏壇に付いたカビ取り液で色が取れてしまった場合、復元するために塗料を使用することができます。ただし、使用する塗料は仏壇の素材と仏壇の色に合わせたものを選ぶ必要があります。
  • 仏壇の素材として「桜調着色」「ウレタン仕上げ」が使用されている場合、水性ウレタンニス(つや消しクリヤー)を使用することができます。この塗料は仏壇の色を復元するのに適しています。
  • 仏壇の色を復元する際は、まず仏壇の色に合わせた塗料を選びます。そして、色塗りを行い、最後に水性ウレタンニス(つや消し)を塗ることで仏壇の色を保護することができます。塗料の回数は仏壇の色の濃さによって異なるため、何回塗るかは仏壇の色に合わせて調整する必要があります。
回答を見る

専門家に質問してみよう