0

多くの機能を実行し、適切に動作するマクロがありますが、2 つの状況のいずれかでボタンのサイズが変更されます。ボタンは、マクロが約 500 行のデータを削除するオートフィルターを使用するとサイズが変更され (ボタンが大幅に大きくなります)、プログラムを実行する前に最初にデータを貼り付けるとサイズも変更されます (再び大きくなります)。プロパティに移動して、オブジェクトの配置で「セルに合わせて移動またはサイズ変更しない」を選択しようとしました。また、ボタンの縦横比をロックしようとしました。しかし、どちらもボタンのサイズ変更を妨げていません。他に何を試すことができるかについてのアイデアはありますか?

4

1 に答える 1

2

これでうまくいくはずだと思います。

私が以前に見たもう 1 つのことは、ボタンが変更されるとフォント サイズが変更されることがあることです。これを含めましたが、コメントアウトしたままにしました。ボタンの位置をリセットする必要がある場合もあります.TopLeftCell。これも含まれていますが、以下のコードではコメントアウトされています。

'## Add the following to your existing macro:
Dim btn As Shape
Dim btLeft As Double, btTop As Double, btWidth As Double, _
    btHeight As Double, btFontSize As Double
Dim btCell As Range

'## Put this block of code before your existing code:
Set btn = ActiveSheet.Shapes("Button 3") '## Modify to your button name
With btn
    btLeft = .Left
    btTop = .Top
    btHeight = .Height
    btWidth = .Width
    'btFontSize = TextFrame2.TextRange.Font.Size
    'Set btCell = btn.TopLeftCell
End With

'Your code goes here:
'
'
'
'End of your code

'## Put this block of code before the Exit Sub statement/after your existing code
With btn
    '.TopLeftCell = btCell
    '.TextFrame2.TextRange.Font.Size = btnFontSize
    .Left = btLeft
    .Top = btTop
    .Height = btHeight
    .Width = btWidth
End With
于 2013-07-08T16:52:55.467 に答える