
VGA初心者です。
エクセルで、画像名を入力したら対応する画像が挿入されるVGAを設定したいです。
過去質問を参考に指定する場所を変えてみたりしたのですが、自分では力及ばず…。
https://oshiete.goo.ne.jp/qa/4004938.html?_ga=2. …
こちらのコードを入力してみたところ、A1に名前を入力したらB1にセル高さに対応した画像が入りました。
上記同様に名前の入力場所と、配置場所を変更したコードを設定したいです。
その際に、
・名前は〇〇の行(画像だと31の行)
・画像は名前を入力したセルの2つ上のセル範囲
という風にしたいです。
恐れ入りますが、どなたかご回答いただけますでしょうか?何卒、宜しくお願い致します。

No.2ベストアンサー
- 回答日時:
こんにちは
リンク先を拝見いたしました。
参考のコードは行方向の移動を対象にしていますので
変数の使い方を列方向に変更すれば良いです
>こちらのコードを入力してみたところ、A1に名前を入力したらB1にセル高さに対応した画像が入りました。
この処理に問題がないのであれば、
添付画像の表組はC31に最初の名前、、3つ飛ばしてG31が次の名前の場合
Sub try2()を例として変更箇所は
n = .Cells(.Rows.Count, 1).End(xlUp).Row を
n = Cells(31, Columns.Count).End(xlToLeft).Column
If n = 1 And Len(.Cells(1, 1).Value) = 0 Then Exit Subを
If n <= 2 And Len(.Cells(31, 3).Value) = 0 Then Exit Sub
For i = 1 To n を
For i = 3 To n Step 4
fn = .Cells(i, 1).Value を
fn = .Cells(31, i).Value '(セルには拡張子を含むファイル名)
Set r = .Cells(i, 2) を
Set r = .Cells(31, i).Offset(-2).MergeArea
以上でしょうか?
他のサンプル(ベストアンサーを除く)もほぼ同様の箇所のようですね
少し気になるのは、列幅の対応がないようですが、、よろしいのでしょうか
また、どれもInsertなので貼り付け画像のリンクが切れていないと思います。
使用状況が分からないので何とも言えませんが、
Shapes.AddPictureメソッドを使う方が良いかも知れません。
Shapes.AddPictureメソッドの使用例
参考先コード
With .Pictures.Insert(fd & fn).ShapeRange
.LockAspectRatio = msoTrue
.Left = r.Left
.Top = r.Top
.Height = r.Height
End With
部分を下記に変更
Dim ds As Double
With ActiveSheet.Shapes.AddPicture( _
Filename:=fd & fn, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=r.Left, _
Top:=r.Top, _
Width:=0, _
Height:=0)
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
If r.Width / .Width < r.Height / .Height Then
ds = WorksheetFunction.RoundDown(r.Width / .Width, 2)
Else
ds = WorksheetFunction.RoundDown(r.Height / .Height, 2)
End If
.Width = .Width * ds
' .Height = .Height * ds
End With
' .Height = .Height * ds は列幅に合わせているのでコメントアウト
コメント有難うございます。
記載していただいたコードで実行したところ、「画像」の場所に挿入されました。
現状、画像の縦がそのままで、横がフィットした潰れた画像になります。
お教えいただいた上で大変恐縮なのですが、
画像のサイズについて、決められた数値でトリミングされて画像が配置されるような仕組みは可能でしょうか?
添付していた画像では、「画像」の範囲のサイズが高さ「10.3"」幅「3.13"」となっておりまして、例えば縦は高さいっぱいまで拡大され、横はそのサイズでトリミングされる様な感じです。
可能であれば、お教えいただけますと幸いです。
よろしくお願いいたします。
No.4
- 回答日時:
ごめんなさい、
急な出張に出かけるので時間がありません。
画像では、結合セルになっているようですね。
コード中の r. は貼り付け先のセルです、その大きさを取得して
サイズ変更していますのでセル巾、高さを調整してみてください。
あと、画像の比率を維持するか、しないか、も確認してみましょう
明日の夜には拝見できると思います。
詳しく有難うございました。
画像のサイズを、
.LockAspectRatio = True
.Height = 650
で固定して表示することにしました。
あとは画像のサイズとセルのサイズをいじっていこうと思います。
細かくお教えいただき大変助かりました。
No.3
- 回答日時:
こんばんは、
貼り付く画像のサイズは、最後の
.Width = .Width * ds
' .Height = .Height * ds
で調整しています。画像をトリミングと言うとどうでしょう。
.Heightがセルの高さいっぱいと言う事であれば、' .Height = .Height * ds
の 'を取ってみてください。
直接数値で指定する事も出来ます。ポイント?
ピクセルか
.Width = 3.13*0.118
.Height = 10.3*0.75
ちょっと、いろいろ試してみてください。
追加でご返信有難うございます。
画像のサイズを数値で…は上手くできなかったので、
とりあえず縦を目一杯…というのをやってみたく、横ははみ出してもいいと思い、
.Width = .Width * ds
' .Height = .Height * ds
を
' .Width = .Width * ds
.Height = .Height * ds
にしていじってみたのですが、
縦につぶれた画像になってしまいました。
恐れ入りますが解決策は何かありますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ハイパーリンク で『指定されたファイルを開くことが出来ません』 3 2023/04/25 18:02
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】期限アラートについて
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
シートを保護しても入力規則を...
-
エクセルでセルのコメントが消...
-
エクセルで、入力制限(プルダ...
-
エクセル逆三角マークで選択項...
-
エクセルの入力規則で作ったリ...
-
入力規則の入力時メッセージの...
-
Excelでセルにデータを表示(右...
-
エクセルで、入力できる箇所を...
-
エクセルVBA ブックを閉じる前...
-
【Excel】ドロップダウンリスト...
-
エクセル 入力規則のリストボ...
-
カンマで区切った数値をCOU...
-
エクセルで電話番号から市内局...
-
ドロップダウンリスト(INDIREC...
-
エクセルVBA ユーザーフォーム...
-
エクセルで、セルをクリックす...
-
フォーム入力で入力規則を設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
エクセルでセルのコメントが消...
-
エクセルVBA ブックを閉じる前...
-
シートを保護しても入力規則を...
-
エクセルの入力規則で作ったリ...
-
エクセル逆三角マークで選択項...
-
エクセルで、入力できる箇所を...
-
エクセルで、入力制限(プルダ...
-
【Excel】ドロップダウンリスト...
-
カンマで区切った数値をCOU...
-
入力規則の入力時メッセージの...
-
エクセル 入力規則のリストボ...
-
フォーム入力で入力規則を設定...
-
ドロップダウンリスト(INDIREC...
-
エクセルで電話番号から市内局...
-
エクセルで。
-
エクセルVBA ユーザーフォーム...
-
Excel 自動的に半角英数になり...
-
エクセルで、セルをクリックす...
おすすめ情報
本文中、誤りがありました。
上記同様に名前の入力場所と、配置場所を変更したコードを設定したいです。
↓
上記同様にセルの高さに対応する画像の挿入ですが、名前の入力場所と配置場所を変更したコードを設定したいです。