0

恐ろしくフォーマットされたテーブルを取り、ほとんどの場合、すべてのデータを正しい場所に配置する Excel マクロを作成しました。そのため、8 時間以上かかるデータを手動で再入力する代わりに、チェックしてすべてが正しいことを確認するのに約 30 分しかかかりません。

マクロの最後に、ワークブックをデータベースにインポートできるようにカンマ区切りのファイルに設定する最終的な書式設定を行うためのボタンを作成しました。

'The 4 arguments determine where the cells top left corner is and its width,height
Set btn = ActiveSheet.Buttons.Add( _
    ActiveSheet.Columns(7).Left, _
    ActiveSheet.Rows(2).Top, _
    ActiveSheet.Columns(1).Width * 2, _
    ActiveSheet.Rows(1).Height * 2).Select

'creates all the settings for the button
Selection.Name = "btnFormat"
Selection.OnAction = "Final_Formatting"
ActiveSheet.Shapes("New Button").Select
Selection.Characters.Text = "Complete Formatting"

問題は、最後にボタンがまだ選択されていることです。選択を解除したいと思います。私は他の場所を検索しましたが、ほとんどの人は何か他のものを選択するように言っていますが、ボタンの選択を解除したいだけです。これは可能ですか?

また、4 つの引数をクリーンアップする方法について提案がある場合は、お気軽にコメントしてください。私はインターネットからその部分を取得し、自分の目的に合わせて調整しましたが、ばかげているように見えます.

前もって感謝します。

4

2 に答える 2

0

ボタンを選択したくない場合は、単に選択しないでください (現在のように)。以下のコードでいくつかの改善を提案します。

Sub TEST()
Dim btn As Button
Set btn = ActiveSheet.Buttons.Add( _
    ActiveSheet.Columns(7).Left, _
    ActiveSheet.Rows(2).Top, _
    ActiveSheet.Columns(1).Width * 2, _
    ActiveSheet.Rows(1).Height * 2)
'there is no selection method above!

'creates all the settings for the button
With btn
    .Name = "btnFormat"
    .OnAction = "Final_Formatting"
    'ActiveSheet.Shapes("btnFormat").Select- this line is not needed
    .Characters.Text = "Complete Formatting"
End With

End Sub

その結果、コードの実行後にセル範囲が選択されます。

于 2013-06-19T14:21:36.313 に答える