• ベストアンサー

エクセル 画像ドラッグドロップ

エクセルにドラッグドロップでマウスを放した場所に画像を入れられませんか? ポインタに+の記号が出るので、マクロを組めばできそうな気がしますが、 やり方が思いつきません。 ヒントだけでもよいですので、よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

#3です。 サブクラス化というのは、今回の例ではエクセルのワークシートが使っていないファイルのDrag&Drop機能を、Windowsとの情報通信を横取りして盛り込むものです。エクセルのウィンドウに対するサブクラス化は安定性が疑問ですので、それを活かした状態で他の作業をビシバシと行うのは危険だと考えます。トラブルと、エクセルを再起動するしかありませんので、データが喪われる怖れがあります。 http://www11.plala.or.jp/micras/software/whywhat.html http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu9.htm 「ワークシートに画像ファイルをドラッグ&ドロップ」でググるとコードが見つかると思いますので眺めてみて下さい。 当方、2の方はアドイン化して、リボンに組み込んでリサイズ率設定も出来る様にして実用しています。UserFormを半透明にして、Drag&Drop受け入れモードである事を示す透かし文字も表示して、誤操作防止を図っています。無理は禁物で、Drag&Dropをしたいときだけ実行し、速やかに抜ける方が無難だと考えております。 ご参考まで。

tanakanono
質問者

お礼

回答ありがとうございます。 ググって出てくるんですね。ちょっと前に探し回ったけど見つからずあきらめていました。解説も書いてあるようなので大変助かります。じっくり眺めてみます。

その他の回答 (3)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

VBAで可能ですが、WindowsAPIを多用した面倒なものになります。Excel2010までは動作を確認していますが、2013は持っていないので未検証です。 2方法を試しています。 1.Excelのウィンドウをサブクラス化して、画像ドロップを受け入れる様にする方法 以前のバージョンに比べて、2010では不安定になり、画像1個で動きますが、複数になるとハングアップする場合があります。 2.UserFormをエクセルのウィンドウ全体に表示し、透過率を上げて(不透明度を下げて)半透明~殆ど見えないようにして、こちらで画像のドロップを受け入れます。やはりサブクラス化してやって、ドロップ時の動作を自前で追加してやる必要がありますが、こちらの方が安定しています。 どちらの方法もマウスクリックで得られる座標をワークシート座標に換算する必要があります。長くて4K文字には収まりませんし、きっと採用されないので、ご関心がある様なら投稿を考えます。 他に、UserFormにListViewやWebBrowserコントロールを置いてそちらで受け入れ、ActiveCellに貼り付ける方法もあります。後者の方が簡単な様です。 http://okwave.jp/qa/q7167712.html 以上、ご参考まで。

tanakanono
質問者

お礼

ご回答ありがとうございます。 イメージはwordでドラッグドロップで挿入できるような感じです。 2の方法だと、常にuserformが出ている状態になり、セルが選択できないように思います。回避できると思いますがものすごく複雑そうです。 1の方法でぜひ教えて欲しいです。 よろしくお願いします。

回答No.2

メニューの挿入で図を選べば絵入れられるので、それじゃダメなのでしょうか? マクロでドラッグドロップは無理だと思いますが?

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

昔は出来たらしいですが、今はエクセルにその機能がありません。 時折紹介される代替案としては、 1.ワードを起動し、画像の挿入の基本設定を「行内」にしておく 2.エクスプローラから画像ファイルをまとめてワード画面上にドロップする 3.ワード画面からエクセルに画像をドラッグ&ドロップする といった段取りもあります。

関連するQ&A