こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELで画像の挿入

EXCEL2000をXPで使用しています。
1ファイルに1シートのEXCELのデータが300件あります。
シート内の決まったセルに画像を貼り付けしたいのですが
件数が増えると時もあり毎月とても時間がかかっています。
簡単に出来る方法があれば教えてください。
1.EXCELのファイル名と画像のファイル名は同じです。
2.画像を貼り付けたいセルは結合しています。
3.EXCELのシートはセルの値が違うだけで構成というか配置は同じです。
よろしくお願いします。

投稿日時 - 2007-10-10 18:13:43

QNo.3417957

困ってます

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

ま、何はともあれ以下の作業をやってみてください。

1.Excelを開き、Alt+F11を押す。

2.表示される画面にて、メニューの「挿入」>「標準モジュール」を選択する。

3.画面のだだっぴろい白い所にテキストが書き込めるので、以下の内容をコピーする。

''''''''''''''''''''
Const picfold = "C:\pic" '画像ファイルのあるフォルダ
Const kakutyo = ".jpg" '画像ファイルの拡張子
Const TheRange = "E3" '画像ファイルを設置するセル位置

Sub AddPic()

Dim PicPath
Dim ObjFS

Set ObjFS = CreateObject("Scripting.FileSystemObject")

PicPath = picfold & "\" & ObjFS.GetBaseName(ActiveWorkbook.Name) & ".jpg"

If Not ObjFS.FileExists(PicPath) Then
MsgBox PicPath & "は見つかりませんでした。"
Set ObjFS = Nothing
Exit Sub
End If

ActiveWorkbook.ActiveSheet.Range(TheRange).Select
ActiveWorkbook.ActiveSheet.Pictures.Insert (PicPath)

Set ObjFS = Nothing

End Sub
''''''''''''''''''''

4."C:\pic"を画像ファイルの置いてあるフォルダのパスに変更する。
".jpg"を画像ファイルの拡張子に変更する。
"E3"を画像ファイルを挿入するセル座標に変更する。

5.Ctrl+Sを押す。ファイル保存画面が表示されるので、「PicAddMacro.xls」という名で保存する。(保存場所は自由)
保存後、Excelを終了させる。


6.作成保存した「PicAddMacro.xls」を開き、マクロを有効にするを選択する。(セキュリティ設定によっては有効にできないかも)
ファイルを開いた後、Alt+F8を押す。

7.マクロ画面にて「AddPic」の文字を一回クリックし、「オプション」ボタンを押す。
ショートカットキーの部分に"q"を入力し、「OK」ボタンを押し、マクロ画面を右上のばってんで閉じる。

8.Ctrl+Sを押し、上書き保存する。

9.「PicAddMacro.xls」を閉じずに、画像を挿入したいExcelファイルを開く。

10.以後、画像を挿入したいExcelファイルを開いた状態、かつ「PicAddMacro.xls」も開いた状態でCtrl+qを押すと、自動的に画像ファイルが挿入されるようになる。
もし「~~~は見つかりませんでした。」というメッセージが表示された場合、画像ファイルの有無、および各ファイル名が正しいかチェックする。


- - - - - - - - - - -
ひとまず出来るだけ簡単に書きましたが、No2の方の言うとおりあいまいな部分や再現できないがありますので、その部分は省略しました。
あとはいろいろ調べて勉強したり試してみたりとやって見てください。

投稿日時 - 2007-10-10 19:41:06

お礼

回答ありがとうございます。
情報が足りなくてすみませんでした。
そんな状態にも関わらず、ありがとうございました。
取り急ぎお礼まで
これから、やってみます

投稿日時 - 2007-10-10 19:52:44

ANo.3

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

人間がやるのが面倒だというのでしょう。だったら計数の計算なら関数式を工夫して、打つ手もあるのですが、画像は関数では全く対象外です。
ですから、VBAでやらせるほかありません。
VBAの経験ありますか。
1つならマクロの記録で取れますが、2つめ、3つめ・・の画像では
変えなければならないところが必ずあるはずです。
課題の丸投げの上、その変えるための情報が書かれていません。
1シート1画像張り付けですか?
>1シートのEXCELのデータが300件あります
300シートがあり、300画像を1シートに1つ貼り付けるのでしょうか。
>1.EXCELのファイル名と画像のファイル名は同じです。
連番が振ってあるのですか?どのシートにどの画像を貼り付けるのか?どういうルールになってますか。画像のあるフォルダは1つか?
結合セルの上左隅のセル番地と結合セル数は?
結局VBAを組むためには情報が不足してます。

投稿日時 - 2007-10-10 19:12:43

補足

すみませんでした。
1ファイル1シートのEXCELのデータが300個と
同じ名前のbmpのデータが300個あります。
保存場所は変更出来ます。
現在は、BMPはBMPフォルダに300ファイル、
EXCELはDATAフォルダに300ファイル保存しています。

ファイル名は半角数字と"-"を使用しています。
例えば『1234-123.xls』で、連番ではありません。
文字数は"-"の前は4桁は固定ですが"-"の後ろは1桁から4桁まであります。

画像の貼り付けは
例えば『1234-123.xls』ファイルのシートには
A28~N28まで14セルを結合しているセルに
『1234-123.bmp』画像を挿入したいです。

あと、どのような情報が必要ですか?
よろしくお願いします。

投稿日時 - 2007-10-10 19:24:34

ANo.1

文面からは、マクロを使った貼り付けをご希望のような気がしますが、・・・

「挿入」→「図」→「ファイルから」で画像挿入した後、「Alt」キーを押しながら、所定の位置近くまでドラッグすると、画像の点線の輪郭線が、枠線に吸い付かれるように枠線に重なります。その位置で画像をドロップすると、枠線にピッタリ貼り付けされます。

ご参考まで。

投稿日時 - 2007-10-10 18:41:36

お礼

回答ありがとうございます。
希望は、マクロもしくわVBAで一括で出来たら嬉しいと思っています。
教えていた方法を知りませんでした。
1枚ずつやる作業の時には参考にさせていただきます。
ありがとうございました。

投稿日時 - 2007-10-10 19:08:34

あなたにオススメの質問