初めまして。本当にド素人の質問で恐縮です。どなたかズバリ、やさしく教えていただけると助かります。
エクセル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
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
7
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
8
マクロでセルに入れたファイル名の画像を隣のセルに読み込む
その他(Microsoft Office)
-
9
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
10
EXCELで別シートのセル内に画像の貼り付けをしたいのですが・・・
Excel(エクセル)
-
11
【マクロ】でセルと同名の画像を表示させる
その他(Microsoft Office)
-
12
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
13
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
14
エクセルで次々と画像を表示させたい
Excel(エクセル)
-
15
エクセルのマクロで特定フォルダ内のJPGファイルを検索して開きたいので
Excel(エクセル)
-
16
エクセル マクロ 相対パスから画像を読み込みたいです。
その他(Microsoft Office)
-
17
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
18
複数の画像ファイルを挿入したい
Excel(エクセル)
-
19
マクロを使って画像を貼り付け
Excel(エクセル)
-
20
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
エクセルのマクロで意図しない...
-
excelのデータで色つき行の抽出...
-
特定の文字がある行以外を削除...
-
エクセル マクロ オートフィ...
-
エクセルのセルに指定画像(.jpg...
-
セルの色によって条件文をつけ...
-
Excel グラフのプロットからデ...
-
[EXCEL]ボタン押す→時刻が表に...
-
直近の5個の平均を求めたい
-
Excel 時刻の並び替え
-
エクセルマクロ オートSUM(合...
-
Excelでカタカナ・ひらがな・英...
-
電話番号の入力方式が違うデー...
-
結合されたセルをプルダウンの...
-
エクセル2016で時間を入力して...
-
チェックボックスをクリックし...
-
エクセルVBAのEntireRow.Hidden...
-
エクセル 上下で列幅を変えるには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報