ローカル薬局の四半期患者レポートを自動化しようとしています。自動化の1つの部分は、関連情報のフォームに行くレポートの表紙に患者追加ボタンです。フォーム上の「OK」ボタンは、情報を受け取り、患者の名前に従って新しいシートにフォーマットします。このボタンは、新しく作成された2つのボタンを患者シートに追加します。これは、削除および編集ボタンです。ボタンを作成して配置することはできますが、各ページの新しいオブジェクトと見なされるため、ボタンにクリックイベントを割り当てる方法はありません。VBAを使用してシートにボタンを追加し、別のボタンにクリックイベントを割り当てる方法
ボタンのメインコードをブック自体に移動しました。ボタンのクリックイベントに入れる必要があるのは、そのメソッドへの呼び出しですが、新しいボタンのクリックにアクセスする方法は見つかりません私はVBAを使ってイベントを呼び出す必要があるので、VBA自体でメソッドを呼び出す必要があるため、マクロを使用することはできません(公正な注釈は、Excelマクロに精通しているわけではありません。それも使えます)。ここで
で
Dim btn As OLEObject
Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False)
With btn
.Name = "deletePatientButton"
.Object.Caption = "Delete Patient"
.Top = 5.25
.Left = 290.25
.Width = 75
.Height = 24.75
.PrintObject = False
終了ワークブックコード自体に配置された削除ボタンの主な方法である:ここでは
はインスタンス化し、場所/新しいシート上の削除ボタンのサイズコードがあります(これは実際に別の検証フォームを呼び出すだけなので、これは重複している可能性がありますが、私はそれが最大のスコープを持つと想定していたので、テスト用のブックブックセクションに入れたいと思っていました)。
は最後に、ここで私は置く、または他の溶液で置き換えることができるように期待していますクリックイベントの例です。
Private Sub deletePatientButton_Click()
Call ThisWorkbook.mainDeleteButton(Me)
End Sub
すべてのヘルプは感謝よりも多くのです!
[](http://stackoverflow.com/questions/4559094/how-to-add-a-button-programmatically-in-vba-next-to-some-sheet-cell-データ) – MikeT
私はそのページを読んでいましたが、実際にはどのボタンを使用していたとしてもボタンの.onActionプロパティを登録することができませんでした。それが変わったのか不思議でしたが、別の理由でうまくいかなかったのかもしれません。 –