エクセルのコマンドボタンの使い方について質問です。
選択している画像のサイズを大きくするマクロを作りました(※1)。
これをボタン(フォームコントロール)で実行すると、キチンと作動します。
しかし、これを、コマンドボタン(ActiveXコントロール)で実行すると
「実行時エラー’438’
オブジェクトは、このプロパティまたはメソッドをサポートしていません」
とエラーが出てしまいます(※2)。
基本的な質問で申し訳ないのですが、コマンドボタンで実行した際に
エラーがでる理由と解決方法について、ご教授頂けないでしょうか??
↓(※1)
Sub Macro8()
'
' Macro8 Macro
'
Selection.ShapeRange.ScaleHeight 1.75, msoFalse, msoScaleFromMiddle
Selection.ShapeRange.ScaleWidth 1.75, msoFalse, msoScaleFromMiddle
'
End Sub
↓(※2)
Private Sub CommandButton1_Click()
Macro8
End Sub
No.2
- 回答日時:
エラーになる理由については No.1 さんの言うとおり。
対策としては、
CommandButton の TakeFocusOnClick プロパティ を False に すること。
No.1ベストアンサー
- 回答日時:
>コマンドボタンで実行した際に
>エラーがでる理由と解決方法について、ご教授頂けないでしょうか??
Selection という意味は、今、選んでいるものということなのですが、
画像のShape オブジェクトの場合は、フォームコントロールのボタンを押しても、Selection を移動することはありませんが、
ActiveX コントロールの場合は、そのSelection が移動してしまいます。
ですから、Selection を使用して、画像の大きさを変えようとして、ボタンの自分自身を選択していますから、通常の方法ではコマンドは無理だということです。
あえて、ActiveX コントロールのボタンを用いるのでしたら、画像のShape オブジェクトを指定してあげることが前提になります。Selection が使えません。
動的なもの(その都度変わるもの)では、設定が極めて難しくなってしまいます。
Private Sub CommandButton1_Click()
Dim MyShape As Shape
Set MyShape = Shapes("図 1") '<- 固定したもの
MyShape.ScaleHeight 1.75, msoFalse, msoScaleFromMiddle
MyShape.ScaleWidth 1.75, msoTrue, msoScaleFromMiddle
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAで、実行時にsheet上...
-
エクセルVBAでmeに相当するもの...
-
エラー内容が分かりません
-
ファイル名を今日の日付、時刻...
-
複数のデータ系列の線の太さを...
-
コピーしたファイルのマクロを...
-
フォルダ内の全ブックのシート...
-
cellsで特定の離れた範囲を選択...
-
エクセルでツールバーに「縮小...
-
Excelからnotesメールを自動で...
-
【ExcelVBA】指定の書式で、マ...
-
昨日まで動いていたエクセルの...
-
VBAを一度起動するとずっと出て...
-
VBA マクロ実行時エラー’1004Ra...
-
エクセルファイルを自身のファ...
-
エクセル2013vbaで、見えない名...
-
エクセルマクロを有効にしない...
-
マクロでマクロを削除する
-
VBA[Private Sub]のコードをシ...
-
エクセルの指数を無効にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー内容が分かりません
-
エクセルVBAでmeに相当するもの...
-
Excel VBAで、実行時にsheet上...
-
オプションボタン
-
EXCEL VBA テキストボックスの...
-
コモンダイアログエラー
-
EXCEL VBA カレンダーコントロ...
-
キーボードでコマンドボタンを...
-
VBAのコントロールなんかをコレ...
-
エクセルのコマンドボタンの使...
-
複数のデータ系列の線の太さを...
-
フォルダ内の全ブックのシート...
-
エクセル終了時の保存確認メッ...
-
エクセルでツールバーに「縮小...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
VBAを一度起動するとずっと出て...
-
VBAに詳しい方教えてください。
-
コピーしたファイルのマクロを...
-
ファイル名を今日の日付、時刻...
おすすめ情報