web-dev-qa-db-ja.com

Excel VBAの「選択解除」が必要

VBAの実行が完了した後の最終的な外観を空にして、シートにセルや範囲を色付けしない(範囲が選択されている場合)か、太い線のボックス(選択されているものはすべて)にする必要があります。目的:クライアントにきちんとした最終的な外観を提示する。

私は検索しましたが、これを行う方法を見つけることができません。 MSによるとUnselectがありますが、何もしないようです。

9
Gary

セルを選択してCutCopyをオフにします。

  Range("A1").Select
  Application.CutCopyMode = False
10
user276802

それにはトリッキーな方法があります。

ボタンなどのオブジェクトを作成します。このボタンを選択してから非表示にすると、セルは選択されません。

ActiveSheet.Shapes("Button 1").Visible = True

ActiveSheet.Shapes("Button 1").Select

ActiveSheet.Shapes("Button 1").Visible = False

それでおしまい。

2
user364941

Excelでは常に何かが選択されています。回避策が必要です。画面外のセルを選択すると、そこにフォーカスが設定されるため、それ自体では機能しません。このコードは、カーソルを画面外に置き、シートを上にスクロールして表示しますA1

Sub NoSelect()    
  Range("BB100").Select
  ActiveWindow.SmallScroll up:=100
  ActiveWindow.SmallScroll ToLeft:=44
End Sub

「何も選択されていない」が本当に必要な場合は、VBAを使用して、コード実行の最後にシートを保護することができます。これにより、何も選択されなくなります。これをマクロに追加するか、VBAに直接配置できます。

Sub NoSelect()
   With ActiveSheet
   .EnableSelection = xlNoSelection
   .Protect
   End With
End Sub

シートの保護が解除されるとすぐに、カーソルがセルをアクティブにします。

2
CharlieRB

選択のサイズに応じて、アーティファクトを取り除くには(2013 Excelでもこれが問題かどうかはわかりませんが、Macでは常に悩みました)、セルごとにループして、それぞれを選択します。

1
Jason Pevitt

セルを選択する前に画面の更新をオフにすると、選択したセルへのスクロールが一時的に無効になります。

このコードは、現在表示されているセルをチェックし、表示されていない表示範囲の下の最初のセルを選択します。たとえば、試してみると、Visbleの範囲はA1:BC79なので、このコードはA80を選択し、右下にスクロールして再度実行すると、Excelが最初の表示列の下に表示されていない最初のセルを選択していることがわかります。

 
 Dim r As Range 
 Application.ScreenUpdating = False 
 Set r = Application.ActiveWindow.VisibleRange 
 r(r.Cells.Count + 1)。
 Application.ScreenUpdating = True 
 
を選択します。
1
Tobias Carlén

非常に古い質問ですが、参考のために私の答え:

使用できます

With ActiveSheet
    .EnableSelection = xlNoSelection
    .Protect
End With
1
Joost

唯一の答えはカンニングすることです。

Aと行1を非表示にします

カーソルをA1に置きます。 B2の隅に小さなドットが表示されます

1
SeanC

トリックを使用する:図形を追加してから、選択して非表示にします。

これのソースコード は、このサイトの別の質問の答えです。

0
miroxlav