• 締切済み

マクロについて

シート上に画像ファイルを呼び出したいのですが・・ アクティブセル(画像ファイル名のみが入力されてます)のファイル名 の画像を呼び出して、その画像がなければ”ないよ”ってメッセージが 出てくれるとありがたいのですが・・ よろしくお願い致しますm(__)m

  • yaay
  • お礼率0% (0/5)

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.5

マクロの質問にしては 詳細が欠落して漠然としたものになっているので 説明は割愛させていただきます '質問から読み取れた範囲のサンプル Sub Macro1() Dim PicPath As String PicPath = "C:\My Pictures\" If ActiveCell.Value = "" Then MsgBox "ファイル名がありません": Exit Sub If Dir(PicPath & ActiveCell.Value) = "" Then MsgBox "ファイルがありません": Exit Sub ActiveSheet.Pictures.Insert (PicPath & ActiveCell.Value) End Sub

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

(1)質問者はエクセル(VBAでなくエクセル操作)のことを十分経験してない。 (2)マクロと言ってながら、マクロの記録という便利な機能が頭にない。 ーー 挿入ー図ーファイルからー(ファイル指定)の操作をして、マクロの記録を採れば判る。 その具体的画像ファイルを指定(決定)している、コードの部分を、セルの値指定する形式に直せば良い。 ーー >入力されてます)のファイル名 多数のセルにファイル名があるときは、そのどれを採り上げるか、の仕組みは、質問者が考えること。 この辺も1課題だが、質問の重点はどちらか、質問文ではっきりしないし、説明が無く、略。 易しいのはInputBox指定だ。 ーー 1つだけの画像か。複数の画像をシートに表示したいのか。 位置は? などを書いてない。 ーー 質問の焦点が定まらず、実際何か試行したのかもわからず、そのため丸投げ質問だ。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

例えば、 フォルダー"AAA"にあるセルA3の画像をセルC3に挿入する場合。 但し、セルA3には、画像名&拡張子まで入力されていること。 '---------------------------------------------- Sub Tgest()  On Error Resume Next  Range("C3").Select  ActiveSheet.Pictures.Insert("C:\AAA\" & Range("A3").Value)    If Err.Number Then      MsgBox Range("A3").Value & " Not Found"    End If End Sub '-------------------------------------------------- ●ただ、セルC3をSelectしてもそこに挿入されない場合があるので 画像挿入後に位置決めをしてやった方が確実です。 '---------------------------------------------------- Sub Test()  On Error Resume Next  ActiveSheet.Pictures.Insert("C:\AAA\" & Range("A3").Value).Select    If Err.Number Then      MsgBox Range("A3").Value & " Not Found"    Else      Selection.Top = Range("C3").Top      Selection.Left = Range("C3").Left    End If End Sub '------------------------------------------------- 以上です。  

yaay
質問者

補足

早速ありがとうございます 頂いた記述には 画像名&拡張子まで入力されていること(現状はファイル名のみ)それと セルA3の画像をセルC3に挿入する (要望としては 入力されてる画像ファイル名のセルをアクティブにして、そのセル上もしくは付近に画像を挿入したいのですが・・ よろしくお願いします!m(__)m

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

Dir(ファイルパス) で、ファイルが存在すればファイル名が、存在しなければ長さ0の文字列("")が帰ります

yaay
質問者

補足

返答ありがとうございます マクロ初心者なので、何もわかりません 具体的に記述してもらうとありがたいのですが・・

回答No.1

ActiveSheet.Pictures.Insert("ファイルパスを指定") これで画像を呼べますので あとはお好みの処理を加えてやればいいと思います。

関連するQ&A

  • マクロについて

    マクロについて シート3の表をシート1のアクティブセルにコピーしたいのですが、 どのようなコードを書けばよいでしょうか。 よろしくお願いします。

  • 繰り返し処理のマクロ

    下記のマクロをご教示いただけるでしょうか。 ①シートAのアクティブセルをコピーし、シートBのE1セルにペースト ②マクロ「結果反映」を実行 ➂シートAのアクティブセルを1行下に移動 ①から➂をアクティブセル=空白セルになるまで繰り返し

  • VBA シート名とファイル名とフォルダ名を一度に変更したい

    こんばんは。 現在のアクティブセルに入力された文字列「(例)0001」を入力するとシート名、ファイル名、フォルダ名が変更するVBAを作成しています。 シート名の変更は出来たのですが、ファイル名とフォルダ名の変更が上手くいきません。 大変恐れ入りますが、伝授いただけないでしょうか。 よろしくお願い致します。 Sub シート名変更() Dim シート名 As String シート名 = ActiveCell.Value If シート名 = "" Then MsgBox "文字列を含むセルを選択してください。" Exit Sub End If ActiveSheet.Name = シート名 End Sub

  • マクロ セルに入力されたシートを選択する

    なかなか理解出来ない初心者です。 セルに入力したシート名で、そのシートを選択するマクロの記述はどうするのでしょうか? また、そのシートが選択された時にメッセージを出力したいです。 御指導お願い致します。

  • エクセルのセルの値をシート名にするマクロ

    エクセルで、例えばB2セルに入力された数字を使って自動でシート名にしたいのですが、(=そのセルの値が変更されたときに 自動的に シート名が変更されるマクロ )どうやったらよいのか良くわかりません。また、重複するシート名があった場合にはアラートを表示させたいです。 例: 1.B2セルに10と入力する 2.もしシート名に重複が無ければ、シート名が自動的に「10月」になり、アクティブセルはB2に戻って復帰する。 3.重複がある場合は「シート名に重複があります」等のアラートを表示して終了する 多分 イベントとかいうものが絡んでくるのでしょうが、マクロは時々使うのですが、いつも記録したものを手直しする程度なので、標準モジュールの部分しか触った事がありません。 どなたか教えてください。お願いします。

  • エクセルのマクロ(値を検索して別シートにコピー)

    エクセルで下記のマクロをご教示いただけるでしょうか。 1.Sheet1のアクティブセルの右に5つ、下に1つのセルを起点として下方向に6セル分をコピー (例)Sheet1のアクティブセルがA2だとすると、F3~F8をコピー 2.Sheet1のアクティブセルの値(yy/mm/dd形式の日付)と同じ値のセルをSheet2のA列から検索し、該当セルの右に2つ分のセルに行列を入れ替えて値のみをペースト (例)Sheet1のアクティブセル(A2)の値がSheet2のA4セルにあるとすると、Sheet2のC4に行列を入れ替えて値のみペースト 3.Sheet1のアクティブセルの値がSheet2のA列に2つ以上あれば、「同じ日付が複数あります。」というメッセージを表示

  • エクセルのマクロで検索#2

    新しく質問です。 アクティブセルの行でそのアクティブセルより右側(右側にあるすべて)のセルに入力があるかどうか調べる方法ってありませんか?もし入力があれば、その次の行に移って、またその行に入力があるかどうか調べてというのを繰り返し、入力がなければ、行を追加してもともとアクティブセルであった列に入力を行いたいのです。 よろしくお願いします。

  • エクセルのマクロでこういったことはできますでしょうか。

    顧客管理で下記のようなことがしたいと思っています。 マクロ初心者なのですが、こういったことは可能でしょうか。 (1)事前に、顧客管理のデータ入力用ファイル(以下データファイル)、A、B、C、D、Eという定型ファイルを作成しておく。A~Eには、全て複数のシートが入っており、シート1にデータファイルに入力した情報が飛ぶようにしたい。 (2)データファイルに顧客情報「あ」を入力し、シート上に作成しておいたAという名のマクロボタンを押すと、Aのファイルのシート1に「あ」という情報が飛び、さらに、Aファイルは原本なので、“「あ」A”という名前の新しいファイルを作成できるようにしたい。 (3)同じように、データファイルに顧客情報「い」を入力して、今度はBというボタンを押したら、Bファイルのシート1に「い」という情報が飛び、“「い」B”という名前のファイルが新しく作成できるようにしたい。 非常にわかりにくい説明で申し訳ないのですが、これから自分でマクロやVBEを勉強しようと思っており、実際こういったことが可能なのかどうか、ご教示頂けますと幸甚です。何卒よろしくお願い致します。

  • Excelのマクロについて

    マクロの保存先を「開いているすべてのブック」にして、 A2~A32をいったん削除した後で、 1月1日から、1月31日を入力して、 最後にA2をアクティブセルにしておく、というマクロを作りました。 1/1と入力すると、普通、1月1日と表示されますよね? 同一ブック、同一シートないでしたら、そのように表示されるのですが、 同一ブック、別シートあるいは、 別ブックで、このマクロを実行すると、 2001/1/1と表示されます。 あとで、セルの表示形式を変えればいいんでしょうが、 この原因が、なぜ、そうなるのかが知りたいです。 (まだ、そのシート内以外だと、マクロが設定できない、 とかの方がわかるんですが。) また、 同一シートでなくても、 1月1日~1月31日の表示形式のままで、 設定できるマクロがあったら、あわせて教えてください。 作成しているファイルの、 バージョンは、Excel2002ですが、 マクロは、2000と変わらないと思うんですが・・・。 よろしくお願いいたします。

  • 複数のマクロを条件付きで実行する

    会社でエクセル2003を使っています。 縦にデータを入力する表を作りました。 (1)氏名 (2)〒 (3)住所 (4)電話番号 (5)生年月日 (6)性別・・・など20項目を入力します。 入力完了後、別シートにデータを転記してそちらの別シートを印刷するというマクロを作りました。 ★ 例えば、その中で入力を絶対してほしい項目がありまして、それを忘れていたらメッセージボックスで「○○が未入力です」とお知らせしたいと思ってます。 ★←このマクロは、昨日質問させていただいて、クリアになりました。 もう一つのマクロ(コード?)を教えていただきたいのです。 未入力のセルがあればメッセージボックスが出て、未入力のセルを知らせて未入力をなくします。 未入力がなくなった段階で、同じファイルの別シートに移りたいのです。 (1)未入力のセルがあればメッセージボックスで知らせて、そのままのシート(Sheet1)にとどまって未入力セルにデータを入力する。 (2)隣のシート(Sheet2)にジャンプする 今はcall macro01(メッセージボックス)、call macro02(隣のシートへジャンプ) としているのですが、メッセージボックスが出て「OK」ボタンをクリックすると未入力のセルがあっても、Sheet2に飛んでしまいます。 未入力のセルがあれば、メッセージボックスが出てそのシートに留まり 未入力がなければ隣のシートに移る…というマクロ(コード?) 同じ事ばかり書いていますが、なにとぞ、よろしくお願いします。

専門家に質問してみよう