• 締切済み

画像挿入のVBAのコードについて教えてください

ご存じの方がいらっしゃいましたら、教えていただけますと幸いです。 画像挿入を可能にするVBAが組まれたエクセルファイルと画像が、同レベルの階層に格納されているとします。添付の例をもちいると、B列「File」に格納した画像名がドロップダウンリストで表示され、選択するとA列「Image」にその画像が表示されるような、VBAのコードが知りたいです。 よろしくお願いいたします。

みんなの回答

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

シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける Private Sub Worksheet_Change(ByVal Target As Range)  Dim a As Range  If Target.Column <> 2 Then Exit Sub  If Target.Count > 1 Then Exit Sub  Set a = Target.Offset(0, -1)  On Error Resume Next  ActiveSheet.Pictures("Pict" & Target.Address).Delete  If Target = "" Then Exit Sub  With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Target)   .Name = "Pict" & Target.Address   .ShapeRange.LockAspectRatio = msoTrue   If .Width >= a.Width Then    .Width = a.Width - 2   End If   If .Height >= a.Height Then    .Height = a.Height - 2   End If   .Top = a.Top + (a.Height - .Height) / 2   .Left = a.Left + (a.Width - .Width) / 2  End With End Sub B列にファイル名を記入する。 ただ画像を挿入するだけじゃなく,B列を変更したら画像を差し替えます。

16866611
質問者

お礼

大変助かりました。ありがとうございました!

関連するQ&A

  • ワードVBAで画像を挿入

    ワードVBAのことですが、文書の中に図形のボックスが何個か並んでいます(2列で)。それぞれのボックスの中に、同じ画像をボタン1発で挿入するということを簡単なVBAで実現できるものでしょうか。 #同じ画像を全部のボックスに挿入したい。 #ワードのVBAの経験なしです。 #できるとしたら何行くらいの記述でできるものかという難易度も知りたい。 #とても簡単なサンプルコードも教えていただけると尚ありがたいです。

  • エクセル VBAのリストボックス

    エクセルのVBAでユーザーフォーム上のリストボックスに文字を入力すると候補がドロップダウンリストに表示され、候補から一つを選択するとドロップダウンリストをとじるといったコードを教えてください。ただし、最終的にリストボックスの値はリストから選ぶのみで、文字を入力するのは候補を表示するためだけに使いたいのです。どなたか、ご教授願います。

  • Excelへの画像の挿入について

    仕事で、自社Webサイトで使用している全画像をExcelで管理することになりました。 最初は単純に「挿入>図>ファイルから」で1つ1つ入れていけばと考えていたのですが、いざ始めてみると大変効率が悪く、どうにか作業を単純化できないものかと考えています。 VBAでできるのではないか、と思ったのですが、VBAはこれまで使ったことがなく、できるのかできないのかすら分かりません。 最終的には、 ・ある画像フォルダに含まれる全画像から、ファイル名と画像データを取得する。 ・A列をファイル名、B列を画像とし、1行に1画像を配置する。 ・画像が隠れてしまわないよう、それぞれの行の高さを調整する。 ということがしたいのですが、VBAでどこまでできそうか、またVBAに関する解説サイトなどを教えていただけたらと思います。 (VBとVBAの違いも分かっていませんが、VBなら昔やったことがあります。) どうぞよろしくお願いいたします。

  • VBA 列の挿入

    はじめまして。 エクセル初心者です。 はじめてVBAを使用しファイルを作っているのですが、どうしても解決策が見つからないので質問させてください。 【 SheetA~SheetG 】 までデータを入力し 【 Sheet集計 】 で上記のSheetで列の挿入しても大丈夫なようにINDEX・ROW・COLUMNを使い集計 【 Sheet入力 】 で【 Sheet集計 】のデータを表示する ここまではうまくいきました。 ------------------------------------------------ 【 Sheet計算書 】というあらたなSheetを作り 【 Sheet入力 】のデータの一部を使用し表示させ、そこにサイズ・重さなどを入力。 【 SheetA~SheetG 】 に列を挿入してデータを追加すると 【 Sheet入力 】まではうまく集計できますが、【 Sheet計算書 】では挿入した部分のためにサイズ・重さなどが挿入した分だけずれてしまいます。 これでは使えません・・・。 【 SheetA~SheetG 】のどこの部分に列を挿入しても 【 Sheet計算書 】でその挿入した部分のみ認識し【 Sheet計算書 】に列を追加することはできないでしょうか? 教えてください。 【 SheetA 】の参考画像添付しました。Bの列には同じ記号、数字は入りません。 Windows7・EXCEL2010使用です。 よろしくお願いします。

  • 一太郎の画像挿入について

    画像の挿入なのですが、XPで一太郎15を使用していたときは、画像のフォルダを開き、そこから直接ドラッグ&ドロップで挿入できたのですが、ビスタでは、この操作を行うと、画像が表示されず、画像枠の中にファイルの名前(○○○jpg)などと表示されるだけです。どこの設定を修正すればよいのでしょうか。

  • VBAのコードについて

    いつもお世話になっております。 VBAを勉強中の初心者です。 以下の動作をするVBAコードを御教授ください。 添付ファイルのように シート記事数のB列に新聞名 C列に記事数が記載されているシートがあります。 例えば、下野新聞の記事数が3の場合は、下野新聞の行が3行作成されるようにしたいのですが。 どなたかご指導よろしくお願いたします。

  • vbaでIE制御によりドロップダウンリスト表示

    こんばんは。 VBAでIEの操作をしています。 IEのドロップダウンリストはマウスでクリックすると、リストを表示します。 このリストを表示させるということまでをVBAで実現したいです。 用途:   Webアプリが仕様通りのドロップダウンリストを表示できることのテストに必要です。   ドロップダウンリストを表示させた状態で、画面をキャプチャして、この画面キャプチャ   のリストと仕様のリストを比較して、試験結果を評価したいです。   ドロップダウンリストがいろんな画面のいろんな箇所にあって、手作業がいやなんです。 いろんな画面を表示して、画面キャプチャをとるマクロは完成しています。 大変お手数ですが、宜しくご教示ください。

  • 行を挿入するVBAコードを教えてください

    日々の予定を記録・集計しています。 A列に用事のタイトル B列に開始日 C列に開始時 D列に終了日 E列に終了時 の記載されているエクセルシートがあります。 睡眠が0時を過ぎて日を跨いでしまいますので、週別、月別に集計する際に、正確なデータがでません。 正確に集計するために、開始日B列と終了日D列が一致していない場合、 行を挿入して、もとの行は0時で終了させ、挿入行は0時開始にすることで、日別ごとに正確に集計したいです。 ※一つのタスクが2日以上にまたがることはありえないので想定しないでください VBAコードをおしえていただけないでしょうか。 よろしくお願いします

  • vbaコードについて

    vbaのコードについて教えて下さい。 以下のようなリストがあります。 「Aグループ 全て」にチェックをいれると 4行目から7行目にある「Aグループ」の文字列を含む全てにチェックがつく、 同じように、「Bグループ 全て」にチェックをいれると 9行目から12行目にある「Bグループ」の文字列を含む全てにチェックがつくコードを書きたいです。 どなたかご教示いただけますでしょうか? よろしくお願いいたします。

  • 画像挿入できません・・・

    とても初歩的な質問ですみません・・・ PCに保存している映像で、ファイルの表示が「筆のデザイン(?)」になっているものは、メールに挿入したいと思っても、「添付」はできますが「挿入」はできません。 このような画像をメールに挿入したい場合、何か処理を行えば、挿入が可能になるのでしょうか? 可能であれば、その方法を教えていただきたいです。 PCのことは、あまり詳しくわかりません。 どなたか、初心者用に解説していただけませんでしょうか? よろしくお願い致します。

専門家に質問してみよう