質問: 条件付マクロの質問です エクセルのマクロでご質問です。 c:\users等の場所のとあるフォルダに、7777.jpgなどの4桁の名前の写真データが多く格納されており、そのフォルダから特定セルに写真データの番号を入力してシートに挿入表示させるマクロを作ったのですが、 フォルダ内に該当番号ファイルがある場合は問題無いのですが、フォルダに該当する番号の写真データ(番号)が無い場合にマクロを終了させたいプログラムが分かりません。条件でif~thenなどあるようなのですが上手く行きませんでした。とくにメッセージなど高度なことは無くても構いませんので、単に該当番号がフォルダに無い場合マクロを強制終了させる構文などお分かりでしたらぜひ教えていただきたく存じます。大変お手数ですが何卒よろしくお願いいたします。
回答: >条件付マクロの質問です 質問のようなのは、「条件付マクロ」とは言わないだろう。そういう概念機能も無いだろう。vbaには条件判定は出てくるのが当たり前で、これを言うなら、すべてのvbaがそうなる。 ーー #1のご解答を受けて、自分でその路線で、やってみたのか。 (a)やり方がわかりません (b)その通りやったのですがうまくいきません など書いてから、情況を説明すべきだろう。 その結論ぐらい、解答のお礼の印に書くべきだろう。自分のコードを補足欄に長々と書いたりして要るが。 ーー 小生は、質問のコードを多少変えてやってみて、#1解答の路線で、下記でシートに写真ガ出ることを確認した。 後は自分で修正すること。 sub test01() fd = curdir msgbox fd fn = "c:\documents and settings\xxx\my documents\my pictures\" pn = "pc210325.jpg" msgbox fn & pn if dir(fn & pn) = "" then msgbox pn & " の画像ファイルが存在しません" exit sub end if worksheets("sheet1").select thisworkbook.worksheets("sheet1").activate worksheets("sheet1").range("b2").select 'activesheet.pictures.insert("c:\users\suzuki\desktop\777\" & worksheets("検索出力表").range("b3").value & ".jpg").select activesheet.pictures.insert(fn & pn).select selection.shaperange.lockaspectratio = msotrue selection.shaperange.height = 300 end sub 問題は上記のfnとpnの指定だけだ。うまくいかない場合は、存在しないものを指定していないか、余分な文字やもれている文字が無いか。 これを参考にして、たとえエラーが出ても、自分であれこれやって見て、修正するべきだ。 前のステップでmsgboxを入れて確認などが有効と思う。 質問なのだから、そのまま丸写しで動くコードを求めるな。