• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAのコマンドボタンについて)

VBAのコマンドボタンの大きさが変わらないようにする方法

このQ&Aのポイント
  • エクセルVBAのコマンドボタンをシートに配置してある際に、セルの操作によって大きさが変わらないようにする方法について教えてください。
  • コピペした際にコマンドボタンの大きさと位置が変わらない方法はありますか?シートの保護ではコピペができなくなってしまいます。
  • コマンドボタンの設定を変更する方法や、行と列の高さ・幅の変更を禁止しながらコピペができる方法など、VBAのコマンドボタンの大きさが変わらないようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

>エクセルVBAのコマンドボタンをシートに配置 「コマンドボタン」とありますので、ActiveX コントロールでしょうか。 『セルに合わせて移動やサイズ変更をしない』で行挿入・列挿入による変化はありませんでしたが セル全体のコピー貼付だと確かにズレますね。 (1)ズレる事はあきらめて、セルに変更があれば戻すではだめでしょうか? シートモジュールに以下のコードを貼付てください。 (コマンドボタン名はCommandButton1とした例) Private Sub Worksheet_Change(ByVal Target As Range) Dim mySize As Variant '"Height,Width,Top,Left"の順で値を設定 mySize = Split("67.5,216,40.5,54", ",") With ActiveSheet.CommandButton1   .Height = mySize(0)   .Width = mySize(1)   .Top = mySize(2)   .Left = mySize(3) End With End Sub (2)Ctrl+vでの貼付を値で張り付けにしてしまう方法 ThisWorkbookモジュールに以下のコードを貼付 ''ショートカットを設定するマクロ Private Sub Workbook_Open()   Dim mcro As String   '[Ctrl]+[v]に"custom_paste"を割当てる。   mcro = "custom_paste"   Call Application.OnKey("^v", mcro)   Debug.Print "Ctrl+Vに" & mcro & "をセットしました" End Sub 標準モジュールに以下のコードを貼付 Sub custom_paste()   Selection.PasteSpecial Paste:=xlPasteValues End Sub ファイルを保存後、開き直すとCtrl+Vでの貼付が「値のみ」の貼付になります。 (ただしエクセルメニューからの貼付は通常動作します)

関連するQ&A

専門家に質問してみよう