
初めまして。本当にド素人の質問で恐縮です。どなたかズバリ、やさしく教えていただけると助かります。
エクセル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も見ています
-
エクセルに張り付けた写真のファイル名が見たい
Microsoft ASP
-
エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法
Excel(エクセル)
-
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
-
4
Excel セルに入力した画像名からフォルダの画像を自動表示させたい
Excel(エクセル)
-
5
Excelで数字を入れたら対応する図を呼び出したい
Excel(エクセル)
-
6
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
7
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
8
エクセルで次々と画像を表示させたい
Excel(エクセル)
-
9
複数の画像ファイルを挿入したい
Excel(エクセル)
-
10
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
11
エクセル マクロ 相対パスから画像を読み込みたいです。
その他(Microsoft Office)
-
12
Excel VBA マクロ 画像の貼り付け
Visual Basic(VBA)
-
13
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
14
【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
15
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
16
excelにて。VBAで、フォルダ内の画像を一覧の横に表示させたい。
Excel(エクセル)
-
17
エクセル ハイパーリンクで画像を表示
その他(Microsoft Office)
-
18
VBAで「エクセルに写真を貼り付け、外のセルに撮影月日を『和暦』で自動記載」させたい
Excel(エクセル)
-
19
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい
Visual Basic(VBA)
-
20
Excel 画像貼り付けのVBAについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセルのマクロで意図しない...
-
エクセル2016で時間を入力して...
-
VBAで色の付いているセルの行削除
-
Excel2007で、指定範囲の行高さ...
-
エクセルで株の分析をしていま...
-
エクセルで数字を認識して、行...
-
連続データが入った行の一番右...
-
excelのデータで色つき行の抽出...
-
Excel:いまフォーカスがあるセ...
-
EXCELで最後の行を固定
-
セルに値が入力されると隣りの...
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルマクロ オートSUM(合...
-
excel 小さすぎて見えないセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報