6

ExcelシートにExcel/VBAボタンを付けるのに助けが必要です。スクロールやズームの方法に関係なく、画面上の同じ位置に留まる必要があります。できれば、画面の左下または右下にこれが必要です。

ボタンを追加してみました。次に、ボタンを右クリックしました。[コントロールの書式設定] -> [プロパティ] -> [移動しない] または [セルに合わせてサイズ変更] を選択。これを機能させない何かが欠けていますか?

ありがとう!

4

4 に答える 4

3

私はこの投稿が古いことを知っていますが、これは誰にとっても役に立つかもしれません. ActiveWindow の VisibleRange プロパティは、この問題を解決できます。次のようなものを使用します。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveSheet.OLEObjects("MY_BUTTON'S_NAME")
        .Top = ActiveWindow.VisibleRange.Top + ActiveWindow.VisibleRange.Height - 5
        .Left = ActiveWindow.VisibleRange.Left + ActiveWindow.VisibleRange.Width - .Width - 5
    End With
End Sub
于 2014-11-19T21:29:49.227 に答える
1

これが、私が今日コメントに添えたアイデアです:) 通常Floating User Form、フォームの Modal プロパティを 0 に設定することで取得できます。これは実際にはModeless状態です。

基本的な考慮事項:

  • ボタンのように見せるためのフォームのルック アンド フィール (タイトル バーを表示しない/サイズ変更不可/閉じるボタンを非表示にするなど)
  • ボタンの位置を設定する
  • フォームボタンをトリガーするイベント (WorkBook Open)
  • Form Initializeイベントで何をしますか
  • どのイベントが同じ位置に固執し続ける必要がありますか

その他の考慮事項:

この記事には次の情報が含まれています。最後の行にも注意してください :)

VBA または VBA プロジェクトを構成するオブジェクト (ユーザー フォーム、ワークブックなど) からは利用できない機能にアクセスできます。API を呼び出すと、VBA をバイパスし、Windows で直接呼び出すことになります。これは、VBA が通常提供する型チェックなどの安全メカニズムを利用できないことを意味します。API に無効な値を渡すか、(非常によくある間違い) ByVal パラメーターの代わりに ByRef パラメーターを使用すると、Excel が完全かつ即座にクラッシュし、保存されていない作業がすべて失われます。API 呼び出しが安定していると確信できるまで、API 関数を呼び出す前に作業を保存することをお勧めします。

于 2013-01-16T21:05:27.590 に答える