初めまして。本当にド素人の質問で恐縮です。どなたかズバリ、やさしく教えていただけると助かります。
エクセル2010または2013 で、Book1、sheet1のC列に、デジカメ画像のファイル名(.jpgは除く)をテキストで記録してあります。
このファイル名の記録は連番であったり、抜けや順番が違うところ、70以上あります。
(ファイル名は、DSC03046、DSC03050、DSC03048・・・の様にズラッとC列に縦に記録しています。)
デジカメ画像は、C:\Users\mit\Desktop\写真のフォルダに格納してあります。
ご教示いただきたいことは、C列のデジカメ画像のファイル名を記録しているセルに、
写真フォルダのデジカメ画像(.jpg)を一気に貼り付けられるマクロ(プログラム)をズバリ教えていただきたいというものです。写真はセルに合わせる必要もなく、まずはそのままセルに貼れれば良いです。
ネットで似た質問のベストアンサーやプログラムをいろいろ試して、試行錯誤、解読も出来ず、困ってしまい質問をさせていただきました。
何卒、ご教示の程、宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
すみません。
N02です。ActiveSheet.Pictures.Insert(v_PicFulPath).Select
は
o_WS_01.Pictures.Insert(v_PicFulPath).Select
の書き間違いでした。すみません。
No.2
- 回答日時:
例えばこんな感じとか・・・?
※私も初心者なので、細かいこと聞かれてもわかりませんので、これ以上のことはわかりません。
Sub PicImp_n_Resize01()
Dim o_WS_01 As Worksheet
Dim o_Cel_01 As Range
Dim o_Rngs_01 As Range
Dim l_RowHgt As Long
Dim s_Colmn_01 As String
Dim v_PicFulPath As Variant
On Error Resume Next
'もし入力されたフルパスの画像ファイルが、存在しないか、
'パスやファイル名に誤りがあるとエラーになるのですが、
'もしそうなっても最後のフルパスまで処理を続ける。
'(※いい加減なエラー処理なので改善が必要。)
' Application.ScreenUpdating = False
' '画面の描画を止める
'●各種設定。
Set o_WS_01 = ActiveWorkbook.Worksheets("Sheet1")
'目的のシートをオブジェクト変数に代入(シートに短い仮名をつける感じ。)
Set o_Rngs_01 = o_WS_01.Range("D1:D4")
'For Eachのループによって画像ファイルをセットするセル範囲を指定。
'(一番上の行が列名になっているなら、"D2:D4" みたいな感じに変える。)
l_RowHgt = 70
'行の高さと画像ファイルの高さをこの高さに設定。
s_Colmn_01 = "C"
'画像ファイルのフルパスの入力されている列を指定。
'●メインループ処理
'指定したフルパスの画像ファイルを、各セルの位置に挿入して大きさを合わせる。
For Each o_Cel_01 In o_Rngs_01
'指定したセル範囲のすべてのセルに以下の処理。
o_Cel_01.Select
'まずセルを選択。これをすることで、画像ファイルの挿入位置を決定。
'選択したセルの位置に、画像ファイルが挿入されます。
'(また、For Eachのループによって、自動的に一番上のセルから順番に選択されます。)
Rows(o_Cel_01.Row).RowHeight = l_RowHgt
'選択したセルの行の高さを、前段階で設定した高さに変更。
v_PicFulPath = o_WS_01.Range(s_Colmn_01 & o_Cel_01.Row)
'画像ファイルのフルパスの取得(C列より)
ActiveSheet.Pictures.Insert(v_PicFulPath).Select
'「C列に入力されたフルパス」の画像ファイルを挿入してそれを選択。
Selection.ShapeRange.ScaleHeight l_RowHgt / _
Selection.ShapeRange.Height, _
msoFalse, _
msoScaleFromTopLeft
'挿入・選択した画像ファイルを、その行の高さに合わせる。
'※縦横比が保持されるので、自動的に横も合わさります。
Next o_Cel_01
'●後始末。
' Application.ScreenUpdating = True
MsgBox "完了。 ※存在しないか、パスやファイル名に誤りがある画像は抜けています。"
End Sub
No.1
- 回答日時:
まったく同じものを探しても、見つからない事の方が多いですよ。
そういう時は、見つけたマクロが何をしているのかを読み取れなければ無駄な時間を使うだけです。
まずはどんな手順で作業を行うのかを明確にしましょう。
その手段の一つに一つずつ順番に記述したケースを考える方法があります。
そうやって作ったマクロを修正して
「繰り返し処理」
をさせることで問題を解決できることがあります。
というか、このケースではそれで十分だろうと思います。
・・・
一例をあげると
一つずつ順番に記述するマクロは
Sub Macro1()
Range("C1").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\mit\Desktop\写真のフォルダ\DSC03046.jpg").Select
Range("C2").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\mit\Desktop\写真のフォルダ\DSC03050.jpg").Select
End Sub
などと解釈されるような書き方になります。
ここから繰り返しの作業をさせるための共通部分を考える。
Sub Macro1()
Range("●●").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\mit\Desktop\写真のフォルダ\●●●●.jpg").Select
Range("●●").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\mit\Desktop\写真のフォルダ\●●●●.jpg").Select
End Sub
こんな感じでしょう。
ならば、
Sub Macro1()
Range("●●").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\mit\Desktop\写真のフォルダ\●●●●.jpg").Select
End Sub
だけでいい。
あとは、●●と●●●●の部分に必要な値が入るように工夫するだけ。
●●で示されるC列のセルを選択し、そこの値を読み取って●●●●に当てはめてやれば良いということ。
このくらいのやり方は調べられますよね。
あとは「繰り返し」作業を行わせるだけになります。
必要なだけ●●を読み取り続ければいい。
・上から順番に値を読み取り、値が無くなったら繰り返し処理を終わらせるか、
・指定した行まで繰り返し処理を行い、●●●●の記述が無いセルには貼り付けないようにするか、
・すべての行に対して繰り返し処理を行い、●●●●の記述が無いセルには貼り付けないようにするか、
は質問者さんの考え方次第です。
・・・余談・・・
ごめん。
ここは作業依頼をする場所ではないのです。
疑問を解決するための場所なんです。
質問者さんが分からないところを分かるようにするための場所と言ったほうが良いでしょう。
たしかにそのものずばりのマクロを示せば目の前の問題は解決しますが、疑問は先送りにされるだけで、
似たような問題が出たときに自力での解決はできません。
それって本当に問題が解決したと言えるのでしょうか。
そんなわけで上記の説明の中で具体的に分からない点を補足などで質問すると良いと思います。
自力でマクロを作ることにより分からない点を明確にし、その分からない点を質問することで不足している知識を補うことができます。
がんばってください。
ありがとうございます。
余談。おっしゃる通りなのですが、セルの画像ファイル名と同じ画像を、画像フォルダから探して読み込み、セルに表示させるという繰り返しのループが分からず。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Windows 10 JPG PNG サポートされていない形式 (JPGファイルで開ける、開けないがある場合) 4 2022/04/23 13:46
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法
Excel(エクセル)
-
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
エクセルに張り付けた写真のファイル名が見たい
Microsoft ASP
-
-
4
Excel セルに入力した画像名からフォルダの画像を自動表示させたい
Excel(エクセル)
-
5
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
6
Excelで数字を入れたら対応する図を呼び出したい
Excel(エクセル)
-
7
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
8
マクロでセルに入れたファイル名の画像を隣のセルに読み込む
その他(Microsoft Office)
-
9
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
10
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
11
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
12
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
13
Excel VBA マクロ 画像の貼り付け
Visual Basic(VBA)
-
14
VBAで特定のセルに画像があれば削除、なければ貼り付けを行いたい
Excel(エクセル)
-
15
Pictures.Insertメソッド⇒Shapes.AddPictureメソッドに変更したいです。
Visual Basic(VBA)
-
16
複数の画像ファイルを挿入したい
Excel(エクセル)
-
17
画像を削除したい(VBA)
Word(ワード)
-
18
エクセルで次々と画像を表示させたい
Excel(エクセル)
-
19
【マクロ】でセルと同名の画像を表示させる
その他(Microsoft Office)
-
20
ファイル名「1.jpg ~10.jpg~」のソート
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[EXCEL]ボタン押す→時刻が表に...
-
Excel グラフのプロットからデ...
-
エクセルで特定の文字列が入っ...
-
罫線の斜線を自動で引くマクロ
-
結合されたセルをプルダウンの...
-
VBAで色の付いているセルの行削除
-
エクセル 上下で列幅を変えるには
-
excel 小さすぎて見えないセル...
-
【Excel関数】UNIQUE関数で"0"...
-
Excelのフィルター後の一番上の...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセルVBA 最終行を選んで並...
-
エクセル マクロ オートフィ...
-
エクセルマクロで偶数行(又は...
-
エクセル 時間の表示形式AM/PM...
-
エクセル2016で時間を入力して...
-
セルの色によって条件文をつけ...
-
A1に入力された文字列と同じ文...
-
エクセル マクロで数値が変っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
VBAで色の付いているセルの行削除
-
エクセル 上下で列幅を変えるには
-
結合されたセルをプルダウンの...
-
excelのデータで色つき行の抽出...
-
AのセルとB行を比較して、一致...
-
excel 小さすぎて見えないセル...
-
罫線の斜線を自動で引くマクロ
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
エクセルVBA 最終行を選んで並...
-
Excelでカタカナ・ひらがな・英...
-
Excelのフィルター後の一番上の...
-
エクセルVBA:データ端に画...
おすすめ情報