• 締切済み

VBAについて

マクロで指定したセルの中央にボタンを配置したいです。 例 セルC3にボタンを配置する方法 ActiveSheet.Buttons.Add(X,X,X,X).Select Xの部分をどう書けばよいのでしょうか?

みんなの回答

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

' xとyは左上が0基準となる 'ActiveSheet.Buttons.Add(x位置, y位置, 幅, 高さ) ' C3セルと同じ大きさのボタンをC3セル上に配置 With Range("C3") With ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height) ' ボタンの文字や色を変更するならここに書く End With End With ' 一行で書く場合 'Call ActiveSheet.Buttons.Add(Range("C3").Left + 2, Range("C3").Top + 2, Range("C3").Width - 4, Range("C3").Height - 4) その他例 ' 指定したセルの中央にボタンを作成する ' ボタンの大きさはセルより2px小さいものとする With Range("C3") Call ActiveSheet.Buttons.Add(.Left + 2, .Top + 2, .Width - 4, .Height - 4) End With

関連するQ&A

  • Excel 全シート上のボタンを削除 VBA

    いつも大変お世話になっております。 Excelのシート上のボタンを削除したいと考えています。 ボタンはVBAで自動で作成してます。 Sub ButtonCreate() With ActiveSheet.Buttons.Add(Range("C1").Left, _ Range("C1").Top, _ Range("C1").Width, _ Range("C1").Height) .Characters.Text = "起動" .Characters.Font.Size = 8 End With End Sub シート上にはグラフ等もあるため、 まとめてオブジェクトを消すという方法は取れません。 ボタンのみを消したいと思っています。 Worksheets("テスト").Activate ActiveSheet.Buttons.Delete と削除する方法を取っていますが、 他に方法はありますか? BOOKを指定し、全シート上の ボタンを削除する方法があれば、知りたいです。 回答よろしくお願い致します。

  • VBAのボタン操作について。

    For i=0 to 3 with Range("A" & (i+1)) with ActiveSheet.Buttons.Add(.Left,.Top,.Width,.Height) .caption="テストボタン" .OnAction="テストアクション" End with End wirh Sub テストアクション() MsgBox "あなたがクリックしたボタンは上から○番目のボタンです。" End sub 上記マクロを実行すると、セルA1,A2,A3にテストボタンが配置されます。 3つのボタンのどれかをクリックしたとき、テストアクションが実行されますが、 ○番目の○を求めるにはどうすればよいのでしょうか?

  • エクセルVBAでオプションボタンのセル内配置

    エクセル2000です。 シート上に「フォーム」のオプションボタンを配置する際、自動記録を取ると ActiveSheet.OptionButtons.Add(2.25, 2.25, 48, 16.5).Select のように、座標表示になりますが、これを仮に、A1セルやA2セルに配置したい場合、(行の高さ等はシートにより異なるものとします・・・つまり座標が使えない場合)どのような記述になるのでしょうか?

  • 同じブックに存在するシ-ト(X)の指定セル(A1:C10)を別のシート

    同じブックに存在するシ-ト(X)の指定セル(A1:C10)を別のシート(Z)のA2セルへコピーしたいのですが、マクロの記録で入手したコードをコマンドボタンで実行するとエラーになってしまい、先へ進めません。 Private Sub CommandButton1_Click() Sheets("X").Select Range("A1:C10").Select ← この部分が黄色! Selection.Copy Sheets("Z").Select Range("A2").Select ActiveSheet.Paste End Sub 正しく動作させる方法を教えて下さい。 よろしくお願いします。

  • Excelで図をセルの中央に配置したいのです。

    保護したシートの中で保護を外した入力可能な大きなセルを作ってあります。そのセルの中央にJPEGの画像を挿入したいのですが、 ActiveSheet.Unprotect Application.Dialogs(xlDialogInsertPicture).Show ActiveSheet.Protect 上記マクロでは、セルの中央に配置できません。大きなセルの中央に画像を配置したいので上記マクロに書き加えるマクロを宜しくご指導くださいませ。

  • VBAの質問です

    ピボットテーブルを作成するには、 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "copy!R5C1:R128C27").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False Range("F13").Select みたいにしますよね。(記録しただけです。) それで、テーブルを作る際に参照するデータ(上の例ではSourceData:="copy!R5C1:R128C27"の部分にあたります)を、固定された範囲ではなくて、そのときどきで与えられたデータによってフレキシブルに変えてくれるようにしたいんです。 ピボットテーブルを作成するときには、データ範囲のどこかのセルを選択した状態で、「データ→ピボットテーブルの…」を選ぶだけでいいですよね。 そんな感じで、僕の場合は、R128の部分を、その時のデータによって変わってくれるようにしたいんです。currentregionとか使って行の数を数えて、変数を定義してそれに格納して…とかやってみたんですが、結局SourceData:="copy!R5C1:R128C27"のところをどう書き直せばよいのか分かりません。 アドバイスよろしくお願いします。説明が分かりづらくて申し訳ありません。

  • EXCELのVBAについて

    マクロのボタンで内容を削除する様に設定した所、 Dim re As Integer Sheets("投入シート").Select re = MsgBox("入力データをクリアします。" & vbCrLf & vbCrLf & "よろしいですか?", vbOKCancel, "クリア確認") If re <> vbCancel Then Sheets("投入シート").Select ActiveSheet.Unprotect Range("a1:c30").Select Selection.Copy Application.CutCopyMode = False Selection.Copy Sheets("work").Select Range("A1").Select ActiveSheet.Paste Sheets("投入シート").Select ActiveSheet.Unprotect Range("c4:c30").Select Selection.ClearContents Range("f31").Select Selection.Copy Range("c9").Select ActiveSheet.Paste Range("f33").Select Selection.Copy Range("c11").Select ActiveSheet.Paste Range("f32").Select Application.CutCopyMode = False Selection.Copy Range("c14").Select ActiveSheet.Paste Range("c4").Select Application.CutCopyMode = False 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Sheets("投入シート").Select Range("c4").Select End Sub この様に入力したのですがセルのC11の計算式だけセル番号が消えてしまいます。 どうしてでしょうか?ご指導をお願いします。

  • Excelで指定のセル上に図を配置したい

    Excel VBAで、シート上に図(四角形)を配置しようと思ってます。 イメージ的には、ALTキーを押しながらセルとぴったりフィットする図形(四角形)を作成したいのですが、マクロで生成したコードを見ると下記のように座標での指定になってます。 ActiveSheet.Shapes.AddShape(msoShapeRectangle, 102#, 210#, 76.5, 15#).Select もしこれをセルで指定する方法がありましたら教えて下さい。宜しくお願いします。

  • VBAで指定したシートの指定したセルに

    VBAで指定したシートの指定したセルに 何かを書き込む場合どうすればいいのでしょうか? 例 Sheet1に配置されてあるボタンをクリックしたとき Sheet3のC1に"AAA"を書き込みたい。

  • VBAマクロ_セル範囲を行列番号で指定

    エクセルマクロで、ある範囲を指定してコピーし、別の場所を指定してそこへ貼付たいのです。 個別に指定するなら、例えばこんな感じで   Range("B18:C32").Select   Selection.Copy   Range("B67").Select   ActiveSheet.Paste B18:C32 のように、セル番号で指定すれば出来ます。 このコピー範囲を、行列番号で指定したいのです。 「セル(i,j)~(k,l)までの範囲」というふうに、4つの変数で表現したいのです。 cells(i,j)を使えばできそうと思ったのですが、どうもうまくいきません。 良いやり方があれば教えてください。