
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No3です。
>理由は、名前に「.jpg」が付いていたからでした。
それはエラーの原因にはならないはずです。
そのようなデータがあっても、画像が表示されないだけで、処理はされますので。
ですので、エラーが発生したのなら、原因は他にあるはずです。
No.3
- 回答日時:
No2です。
>mg = imgFolderPathのところでエラーとなります。
あらそうですか・・
ご指摘は、
img = imgFolderPath & c.Offset(, 2).Text & ".jpg"
の一文であろうと思いますけれど・・
内容的に文字列を連結しているだけなので、エラーになり様がないですね。
当然ながら、当方の環境ではエラーにはなりません。
質問者様がどのような環境で、何を試したのかが不明ですけれど、エラーを発生させるなら変数imgを数値型で宣言しておくくらいしか思いつきません。
あるいは、変数c の設定をしていないか、妙な値を代入してあるとか・・
言ってみれば、
a = 1 + 3
みたいな内容のセンテンスですので。
実行時に各変数の内容がどうなっているかを確認してみれば、理由がわかるのではないかと想像します。
それでもわからなければ、No2はダメ回答と見做して捨ててください。
この回答へのお礼
お礼日時:2024/03/20 17:19
折り返し、ありがとうございます。
c.Offset(, 2) この部分は、言い換えれば、cells(2,3)のことですよね?
違うとすれば、指定しているフォルダが違うのかな?
\がコピペしたら¥になりますけど、いいのかな?
素人ですみません…
No.2
- 回答日時:
こんばんは
こんな感じでしょうか?
・1行目はタイトル行と仮定しています
・画像は回転していないものと仮定しています
・画像はセルに左寄せで、サイズ調整して貼り付けます
Sub Q13764919()
Dim c As Range, i As Long, img As String
'画像フォルダーのパス
Const imgFolderPath = "C:\Users\hoge\images\"
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
Set c = Cells(i, 1)
img = imgFolderPath & c.Offset(, 2).Text & ".jpg"
If Dir(img) <> "" Then
With ActiveSheet.Shapes.AddPicture(img, msoFalse, _
msoTrue, c.Left, c.Top, -1, -1)
.LockAspectRatio = True
.Placement = xlMove
.Height = c.Height
If .Width > c.Width Then
.Width = c.Width
.Top = c.Top + (c.Height - .Height) / 2
End If
End With
Else
c.Value = "No Image"
End If
Next i
End Sub
No.1
- 回答日時:
私もVBA初心者です。
https://selifelog.com/blog-entry-1614.html
あたりが参考になるかもしれません。
上記HPのサンプルの,
Sub sample03()
Dim objShape As Object
Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:="c:¥temp¥image01.jpg", _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height)
End Sub
を加工すれば,できそうな...。
1C列の名前をもとにファイル名を作成。
2ファイル名をもとに上記のサブを呼び出す。(引数に名前を渡すように変更)
3アクティブセルを次へ移動
みたいにすればいいかもです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
VBA 指定した列にある日時デー...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
vba マージエリアの行数を非表...
-
エクセルマクロPrivate Subを複...
-
列方向、行方向の定義
-
【Excel VBA】条件を満たすデー...
-
Excelの行数、列数を増やしたい...
-
Alt+Shift+↑を一括で行うには、...
-
Excel文字列一括変換
-
データシートビューのタイトル...
-
エクセルで?
-
エクセル マクロ 範囲指定で...
-
エクセル 任意の列数で分割する...
-
VBA Splitで「引数の数が一致...
-
エクセル 重複したデータを別...
-
VBAで結合セルを転記する法を教...
-
エクセルのシートの大きさを変える
-
エクセル マクロ 範囲の値を上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
VBAで別ブックの列を検索し、該...
-
VBA 指定した列にある日時デー...
-
列方向、行方向の定義
-
LEFT関数とIF関数の組み合わせ...
-
Excelの行数、列数を増やしたい...
-
CSVファイルの「0落ち」にVBA
-
エクセル マクロ 範囲指定で...
-
VBAで結合セルを転記する法を教...
-
土日の列幅の自動変更を教えて...
-
ListViewで列を指定して表示さ...
-
エクセルで最初の行や列を開け...
-
エクセル マクロ 範囲の値を上...
-
csvデータの列の入れ替えができ...
-
最近急にVBAの処理速度が遅くな...
-
Excel文字列一括変換
-
エクセルで複数列の検索をマク...
-
エクセルのソートで、数字より...
おすすめ情報
いけました。理由は、名前に「.jpg」が付いていたからでした。
色々ありがとうございました。