前提・実現したいこと
保存されている画像をExcelシートの指定の場所に貼り付ける。
簡単な説明として、
・Excelには「input」「チェックシート」の2つのシートがあります。
・「input」には画像の格納先のパスを入力する場所(B4セル)とマクロ実行のボタンがあります。
・「チェックシート」には画像のファイル名(拡張子なし)がF列に書かれている。
・今回はG列に画像を貼り付けていきたい。その時、左(F列)の名前と画像の名前が一致したとき、G列に貼り付けたい。
発生している問題・エラーメッセージ
現在エラー文で、 実行エラー’91’; オブジェクト変数またはWith変数が設定されていません。 となってしまいました。 Cells.Find(What:=strImgName).Activateの部分が色塗りされている状態です。 何が原因かわかりませんか? 少し調べたところ、nothingの場合の処理を入れるといいみたいなのですが、 nothingの場合はH列に「NG」と入力するようにしたいです。 ネットで調べると、 Set r = Cells.Find("test") If Not r Is Nothing Then のような書き方でsetが使われていますが、 自分のは違う書き方になっているので対処方法がわかりません。 また、 Set objShape = からの動作もネットから持ってきたもので、H列に入力する処理方法もわからないので 教えていただけませんか?
該当のソースコード
VBA
1Private Sub CommandButton1_Click() 2 Call call_PasteImage 3End Sub 4 5'**************************************************************** 6' グローバル変数 7'**************************************************************** 8 9'【Path取得セル】"INPUT"シート 10Public Const pathClm As Integer = 2 'B 11Public Const pathRow As Integer = 4 12 13Dim ImagePath As String ' 貼り付け用画像格納フォルダパス 14 15Function call_PasteImage() 16Dim objShape As Object 17Dim strFileName As String 18Dim strImgName As String 19 20ImagePath = Cells(pathRow, pathClm) 21strFileName = Dir(Range("B4").Value & "*.jpg") 22 23Sheets("チェックシート").Select 24 25 Do Until Len(strFileName) = 0 26 strImgName = Left(strFileName, Len(strFileName) - 4) 27 28 Cells.Find(What:=strImgName).Activate 29 ActiveCell.Offset(0, 1).Activate 30 31 Set objShape = ActiveSheet.Shapes.AddPicture( _ 32 fileName:=ImagePath & strFileName, _ 33 LinkToFile:=False, _ 34 SaveWithDocument:=True, _ 35 Left:=ActiveCell.Left, _ 36 Top:=ActiveCell.Top, _ 37 Width:=ActiveCell.Width, _ 38 Height:=ActiveCell.Height) 39 40 strFileName = Dir() 41 Loop 42 43End Function 44
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー