• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:教えてください。)

エクセル2007のマクロ、VBA書き込みについて

このQ&Aのポイント
  • エクセル2007のマクロやVBAを使用して、指定された結合セルにのみ画像を挿入したいです。
  • 現在のVBAでは、すべてのセルに画像が挿入されてしまいますが、結合セルのみに挿入したいです。
  • 縦B9からB21、縦B24からB36、縦B39からB51、横BからEの結合セルに同じサイズの画像を挿入したいですが、どの部分にVBAを書き込めばいいか分かりません。

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

  • ベストアンサー
noname#144013
noname#144013
回答No.1

こんにちは。 今回の問題を確認しますと、  ワークシート上に設定した下記3箇所の結合セル範囲について、    (1)B9:E21    (2)B24:E36    (3)B39:E51  現在は、このセル範囲『以外』のセルがダブルクリックされた際にも、[画像選択ダイア  ログ]が表示されてしまい、続けて画像ファイルを選択してしまうと、そのセルに画像が  挿入されてしまうのでそれを回避したい。  言い換えますと、上記3箇所の結合セル範囲以外のセルがダブルクリックされた場合  は、何も行わない処理にしたい。 ということで宜しいでしょうか? そうであれば、ご提示のダブルクリック時のイベントプロシージャの最初の方で、 ターゲットセル(Target)が、上記3箇所の結合セル範囲内に含まれているかどうかを 見て、含まれていなければ処理を抜ける(終了させる)ようにすれば良いと思います。 言い換えますと、対象の3箇所(の何れか)の結合セルがダブルクリックされた時だけ、 画像挿入処理を続行するようにするという事です。 その為には、下記関数(メソッド)が利用できると思います。   Application オブジェクトの Intersect メソッド   ※このメソッドの詳細は、ご使用のExcelのヘルプ(VBAのヘルプ)をご覧下さい。 あと、上記の対策を行った場合、以下のような注意点があります。 対象の結合セルに画像を貼り付ける際に、画像がセル範囲内に収まるようにサイズ 調整を行っていますが、セル範囲のサイズいっぱいまで拡大or縮小するようになって いるようです。 その場合、もし、元の画像の縦横比がセル範囲の縦横比と全く同じだった場合は、 画像とセル範囲の間に隙間が全くなくなってしまいます。 その状態で、対象の結合セルをダブルクリックしようとして、マウスを持っていきクリック するとセルではなく、画像が選択されてしまい、セルのダブルクリックが上手くできなく なってしまいます。 ですので、画像サイズを調整する際は、対象の結合セル範囲のサイズより少し小さめ のサイズにするようにして、画像とセル範囲の間に隙間を作るようにした方が良いかも しれません。 ※その他の方法(セルのダブルクリックではなく、コマンドボタンなどで画像挿入処理を  行うなど)も考えられるとは思いますが。。。 以上を踏まえて、ご提示のマクロを修正したマクロソースを下記に掲載しました。 (下記リンク先参照) 宜しければ検証してみて下さい。(※尚、当方ではExcel2000を使用しています) ■マクロソース(修正版) http://ideone.com/fHZ2t <上記マクロの補足> マクロ内の画像サイズ調整部分での、画像サイズとセルサイズの隙間を作るための調整 サイズ(隙間サイズ)ですが、ソース内では縦・横ともに10ポイント(上下または左右合わせて) にしています。 このサイズはあくまで暫定ですので、ご使用の環境に合わせて適せん調整してみて下さい。 以上です。

yamari_750
質問者

お礼

FarEyesさんへ ご回答有難うございます、早速書き直して作業進めさせて頂きました、 きちんと挿入できました、まことに有難うございます、 何分50歳過ぎてからやり始めたもので、非常に覚えるのも時間がかかり 自分の不器用さに情けなさを感じる事ばかりです、また有り触れた質問 などでご迷惑おかけするかも知れませんが宜しくお願いいたします。

関連するQ&A