• ベストアンサー

エクセルで、ボタンを使わずセルを選択することで任意のマクロを実行させる事は可能ですか?

お世話になります。 件名と同じくエクセルで、ボタンを使わずセルを選択する事により任意のマクロを実行させる事は可能かをお伺いしたく存じます。 【詳細】 現在、特定のセルを基点に画像を決められたサイズで挿入する作業を行っております。 画像を挿入する基点とするセルは複数あり、その度に図形の挿入のコマンドを選択しております。 ただ、非常に短銃作業ではあるのですが、量があまりにも多い為、 セルを選択した段階で挿入する画像ファイルを呼び出す画面を表示するように出来ないだろうかと思い質問致しました。 以上、お時間のある時で構いませんのでご教授下されば幸いです。

  • abo55
  • お礼率90% (104/115)

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8005/17110)
回答No.1

セルを選択したときにマクロを起動するならシートモジュールにそのマクロを書いておきます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then 'この例だと$A$1を選択したときだけ MsgBox "Macro was done" 'この文を画像ファイルを呼び出すマクロに置き換える End If End Sub

abo55
質問者

お礼

早速の回答ありがとう御座います。 また、サンプルのマクロまで回答下さり感謝致します。 実は、シートモジュールや標準モジュール、ブックモジュールなど 各モジュール毎の、できること、できないことといった機能的な特色に関してあまり理解できておりませんでした(^^;) ですが今回の質問を機に改めて覚えてみようかと思います。 非常に助かりました。また質問した際にもご教授下されば幸いです。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

使いにくい場面もありそうな気がしますが、とりあえず… セルの指定位置は修正してください。 (仮にA1、B2、C3にセットしてあります) Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("A1,B2,C3")) Is Nothing Then Exit Sub Application.Dialogs(xlDialogInsertPicture).Show End Sub

abo55
質問者

お礼

早速の回答ありがとう御座います。 また、サンプルマクロまで短時間で作成して頂き、大変感謝しております。 今後も質問するあるかと存じます。その際も懲りずにご教授頂ければ幸いです。 重ねてではありますが、ありがとう御座いました。

  • MoguraSE
  • ベストアンサー率64% (81/126)
回答No.2

こんにちは。 Worksheet_SelectionChangeイベントは、シート内の選択セルを変更するたびに発行されます。 これを活用してみてはいかがでしょう。

abo55
質問者

お礼

早速の回答ありがとう御座います。 Worksheet_SelectionChange。云われてみれば以前、条件付き書式を拡張したマクロを作成した際使っておりました。 独学で丸のみしてきたせいか、応用が利かなくなっておりますね(^^;) 質問させて頂いてよかったです。 感謝いたします。

関連するQ&A

  • Excelで 「任意の2つのセルを選択後、ボタンを

    Excelで 「任意の2つのセルを選択後、ボタンをクリックしたら、セルの値が入れ替わるマクロ」 を作りたいのですが、 「任意の2つのセル選択」 というところでいきなりお手上げです。 教えてください。よろしくお願いします。

  • 任意の1行を選択していないと実行できないマクロ

    教えてください。 任意の行番号をクリックしてまるまる1行選択してから、「切り取る」「別のシートに挿入、貼付ける」というマクロを実行しています。 1行選択していないとそのマクロを実行できないという風にするにはどのようなコードを書けばよいでしょうか? 選択する行番号はその都度違います。 欲を言えば、間違った選択でマクロを実行した時にエラー表示が出ると大変ありがたいのですが… どうかよろしくお願いします。 使用するエクセルは97です。

  • エクセル アクティブ中のセルにマクロ実行

    表題の件について質問させていただきます。 基本的に数字の入っているセルなのですが、たまに数字の前に備考として特定の文字を入力しています。  特定文字例:東京・千葉・埼玉・鈴木・木村・佐藤  入力後の例:東京232・木村50 その特定の文字の入力には、マクロ登録してあるボタンで実行しています。  ActiveCell.FormulaR1C1 = "特定の文字" さて、質問なのですが、上記ではセルを選択しているときにボタンを押すことで特定文字の入力はきるのですが、入力中っていうのかな?カーソルが点滅している最中にはマクロが実行できないのです。 その為、数字の入った後のセルを選択してボタンを押すと、いちど数字の上に特定文字が上書きで入力されて数字が消えてしまいます。 現在は、ボタンを押して特定文字を入力した後に再度数字を入力しています。 どうにか、セルの選択中でもカーソル点滅中でもマクロを動かすことはできないでしょうか。 よろしくお願いいたします。

  • EXCELのマクロ。セルが選択されているかどうか。

    Excel2000のVBAでセルが選択されているかどうかチェックしてセル以外の画像などが選択されていればエラーメッセージ、そうでなければマクロを実行させるにはどう書けばいいのでしょうか?

  • エクセルのマクロで任意のセルに他のシートのセルの内容を入力したい。

    初心者のhaasan99と申します。 エクセルのマクロを利用して、任意のセルに特定のセルに入力している内容を入力したいのです。 任意のセルと特定のセル(たとえばA1)が同じシートの場合は、下記のマクロで実行できました。 ActiveCell.Value = "=$A$1" 特定のセルが他のワークシートの場合でもできる方法があるでしょうか。(たとえば、任意のセルがワークシート1で特定のセルがワークシート2) 参考書を調べていろいろやってみましたが、うまくいきませんでした。 どうぞよろしくお願いします。

  • EXCEL 任意のシートを選択するマクロ

    よろしくお願いします。 シートがsheet1からsheet10まであります。 マクロのコマンドで、sheets("sheet1") 等がありますが、 sheet11のA1セルに入力したシート名(たとえば、sheet6)を このマクロのコマンドに当てはめる事はできないものでしょうか? A1セルに入力したシート名と同じシートを参照するようなコマンドであると助かります。

  • エクセルのセルの選択のことで

    A1~A99までの任意の一つのセルを選択している時に、 現在のセルからA100までを選択状態にするマクロを教えて下さい。

  • Excelマクロ:選択したセルに通し番号を入れたい

    任意のセルを選択している状態で、マクロの実行をすると左上から下へ、一番したへ来たら次の行の一番上から通し番号を入れるというマクロを作りたいのですが、どのようなコードを書けば良いのでしょうか?

  • Excelのマクロで特定のセル範囲に貼り付けてある写真を削除したい

    エクセルのマクロを使って、ワークシートの特定の範囲に貼り付けてある写真を全て消したいのですが、貼り付けの際に各写真には名称を付けていなかったので、オブジェクト名で選択して削除するという手段が使えません。 イメージとしては、図形描画ツールバーの「オブジェクトの選択」ボタンを押して特定のセル範囲にあるオブジェクトを選択して削除するといった作業をマクロ化したいのです。ワークブックが数百あり、写真の張り付いているセル範囲は全て同じなのですが、写真のオブジェクト名は全て異なり規則性が無いのです。 良い方法があれば教えてください。

  • Excelのマクロでコマンドボタンを選択する方法

    Excelのマクロでコマンドボタンを選択する方法 マクロの記述でオブジェクトのコマンドボタンのみを選択するにはどうしたらいいでしょうか? 別のマクロが登録されているボタンを削除するのが目的です。 オブジェクトは他にもテキストや直線などがあり、コマンドボタンのみの特定の仕方がわかりません。 シートも複数あり、コマンドボタンもまちまちな名前がついています。 WinXP Excel2000

専門家に質問してみよう