

画像をマクロを使ってエクセルシートに貼り付けようとしています。
2つ質問があります。
下記のマクロをベースとして。
(1)画像の縦横比を固定のまま、貼り付けたい。LockPictureAspectRatio=msoTrueだろうと思うのですが、見つかりません。
LockPictureAspectRatioは、画像のバケツボタンの fill effect/picture/select picture/insert/ から来ています。
(2)位置をセルを選んで与えたい。つまり、Cell(10,10) --> pointへの変換方法を教えて下さい。
下のマクロでは、x=100,y=100と与えていますが、これを、セルを選ぶことで与えたいのです。
Sub myMacro()
Dim myPicture As String
Dim a As Object
myPicture = "C:\Documents and Settings\nrjito\My Documents\My Pictures\test.jpg"
Set a = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 300, 300)
a.Fill.ForeColor.RGB = RGB(255, 255, 255)
a.Fill.Transparency = 0
a.LockAspectRatio = msoTrue
a.Fill.UserPicture myPicture
End Sub
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
(1)
コントロールツールボックスのイメージ枠なら簡単です。
ただし、多用するとファイルサイズが大きくなります。
Sub testイメージ枠に写真()
Dim myPicture As String
Dim a As Object
myPicture = "C:\Documents and Settings\nrjito\My Documents\My Pictures\test.jpg"
Set a = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=100, Top:=100, Width:=300, Height:=300)
With a
.Object.PictureSizeMode = 3
.Object.Picture = LoadPicture(myPicture)
End With
End Sub
(2)
Cells(10, 10)の、Left、Topプロパティを指定します。
With Cells(10, 10)
Set a = ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top, 300, 300)
End With
ひとつのセルに収めるなら、Width、Heightプロパティがあります。
With Cells(10, 10)
Set a = ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top, .Width, .Height)
End With
図形に写真を入れるニーズはなんでしょうか?
シートに写真を挿入すれば事足りるのではないでしょうか?
No.2
- 回答日時:
セルとの関連付けは
Cell(10,10).Top
ほかLeft,Height、Widthの4つまたは1つで捉えられる。
画面座標でやるより、フレクシブルだと思う。
>縦横比を固定のまま
は縦横比がわかっているなら、貼り付けてから、WidthとHeightを調節すればよい。
「エクセル 画像 読み込み サイズ」などで照会
セルに関連付けたものが多い。
http://hanatyan.sakura.ne.jp/vbhlp/Excel12.htm ほか
ーー
実際エクセルのシートに読み込まれる(挿入)ときの、元の画像とシートに表示去れるサイズ(圧縮などとの関連も含め)の仕組みも、当然有るとおもうが、WEB上でも情報が少ないと思うが、どうしてもならWEBを調べたら(市販エクセル解説書では載ってないでしょう)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) エクセルのマクロが上手く動きません 4 2022/07/14 13:25
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
エクセルで条件に一致したセル...
-
Excelで複数シートの選択セルを...
-
Excelの「0」だけ非表示、小数...
-
エクセルで1月0日と表示される!!
-
ExcelでTODAY関数を更新させな...
-
日付が未入力の際はゼロか、空...
-
Excelシートの保護時にデータの...
-
EXCELのハイパーリンクのセルを...
-
Excelでスクロールすると文字が...
-
別シートのセルを絶対参照にする
-
エクセルで特定のセルの値を別...
-
複数シートの同じセル内容を1シ...
-
エクセルで指定のセルのみ完全...
-
シート参照で変数を使いたい(EX...
-
EXCEL関数でシート名が変わる可...
-
エクセルで、勤務表から 日付...
-
エクセルVBA「リストボックスで...
-
エクセル ハイパーリンクで画像...
-
エクセルでシート保護をかける...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
複数シートの同じセル内容を1シ...
-
マクロ 新しいシートにデータ...
-
エクセルで複写のように自動入...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
ハイパーリンク で『指定された...
-
エクセルで20万行あるシート...
-
エクセルで特定のセルの値を別...
-
INDIRECT(空白や()がある文字列...
おすすめ情報