Wordマクロでどのボタンが押されたかを簡単に判断できる方法があるのでしょうか?私はすべてのマクロを起動する必要がありますいくつかのボタンとドキュメントテンプレートを持っています。 問題は、私は各ボタンで呼び出される1つのマクロを作成したいと思います。私は、各ボタンにたくさんのマクロを必要としません。どのボタンが押されたかを確認しますか?
このマクロは、ボタンを押すと画像が挿入され、この画像のサイズはボタンのサイズに基づいて選択されます。意味、これは画像のプレースホルダーとして終わります。しかし、マクロを動的に記述して、マクロを呼び出すだけではなく、同じコードが各ボタンで機能するようにしたいと思います。
マクロはすでに完成しています。これを達成する方法について誰かが知っていれば、この最後のことを知る必要がありますか? :)あらかじめThanx!
UPDATE:この瞬間のコードである
ます。Private Sub ImageButton1_Click() PicturePlaceholder ImageButton1 End Subの
ます。Private Sub ImageButton2_Click() PicturePlaceholder ImageButton2 End Subの
Public Sub PicturePlaceholder(ByVal oButton As CommandButton)
Dim oShape As Word.Shape
Dim Dlg As Office.FileDialog
Dim strFilePath As String
Dim oDoc As Document
Dim rgePlace As Range
Dim buttonHeight As String
Dim buttonWidth As String
Set Dlg = Application.FileDialog(msoFileDialogFilePicker)
Set oDoc = ActiveDocument
Set rgePlace = Selection.Range.Fields(1) _
.Result.Paragraphs(1).Range
Response = MsgBox("Do you want to delete the button/Picture?", vbYesNoCancel, "Do you want an image here?")
If Response = vbYes Then rgePlace.Fields(1).Delete
If Response = vbCancel Then Exit Sub
If Response = vbNo Then
With Dlg
.AllowMultiSelect = False
If .Show() <> 0 Then
strFilePath = .SelectedItems(1)
End If
End With
If strFilePath = "" Then Exit Sub
Set oShape = oDoc.Shapes.AddPicture(FileName:=strFilePath, _
LinkToFile:=False, SaveWithDocument:=True, _
Anchor:=rgePlace)
With oShape
.Height = oButton.Height
.Width = oButton.Width
End With
rgePlace.Fields(1).Delete
End If
End Sub
ありがとうございました! :)しかし、私はどのようにボタンの名前を共有コードから抽出するのですか?たとえば、私が必要とするのは、クリックされたボタンの高さと幅を抽出することだけです –
ボタンを共有関数のパラメータとして渡す方法を示す答えを編集し、そのプロパティにアクセスしました。 –
うわー、これはかなりうまくいく! :) 最初の投稿で更新したコードを簡単に見てみることができますか? 私のコードでは、oShapesとして写真を挿入しているので、より簡単に移動できます。しかし、ボタンは実際にはインラインであるため、画像の位置はボタンの正確な位置になります。 ボタンをちょっと形にするためにコードを少し変更することはできますか?コードを試してみると、それは動作しますが、画像は削除される前のボタンのように、oShapeで、inLineのシェイプではないため、ドキュメントのテキストの上に表示されます。 –