アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
エクセルに画像を取り込み、指定範囲内に収まるように貼り付けたいのですが、いろいろ調べ、横向きの画像をセルに挿入することはできたのですが、縦向きの画像を横向きに右に90°回転させて挿入するのができません。

●横向きの画像挿入
Sub 横向き写真挿入()
Dim fName As Variant
Dim pict As Shape
fName = Application.GetOpenFilename("JPG,*.jpg", MultiSelect:=True)
If IsArray(fName) Then
For i = 1 To UBound(fName)
With ActiveCell
Set pict = ActiveSheet.Shapes.AddPicture(Filename:=fName(i), LinkToFile:=False, SaveWithDocument:=True, _
Left:=.Left, Top:=.Top, Width:=.MergeArea.Width, Height:=.MergeArea.Height)
End With
ActiveCell.Offset(2, 0).Activate
Next i
End If

End Sub

●縦向き画像の挿入
①いったん別セルに挿入し、範囲内にある画像を選択
Sub 範囲内画像の選択()
Dim C As Shape
For Each C In ActiveSheet.Shapes
If Not Intersect(C.TopLeftCell, Range("AA5:AD20")) Is Nothing _
And Not Intersect(C.BottomRightCell, Range("AA5:AD20")) Is Nothing Then
C.Select False
End If
Next C
End Sub

②選択した画像を右に90°回転
Sub 右に回転()
Selection.ShapeRange.IncrementRotation 90
End Sub

③指定セルに移動
Sub 移動()
With Selection
.Left = Range("C4").Left
.Top = Range("C4").Top
End With
End Sub

希望としては、
・ボタンを押したときにデスクトップが開くようにしたい(今はドキュメントが開きます)
・①~③の構文を1つにつなげたい
・横向きの画像を取り込んだときのように、スムーズに縦向きの画像を取り込みたい

よろしくお願いいたします。

「エクセルVBAで縦向きの画像の挿入・回転」の質問画像

A 回答 (1件)

こんにちは



元の画像のプロポーションとは関係なしに、セルサイズに合わせてしまっても良いものと解釈しました。
(ご提示のコードがそうなっているようなので…)

以下、90度回転させる場合の一例です。
(表示先の指定が不明なので、ひとまず ActiveCell にしてあります)

Sub Sample_12090491()
Dim p As String, pic As Shape

With Application.FileDialog(msoFileDialogFilePicker)
 .InitialFileName = CreateObject("WScript.Shell").SpecialFolders("Desktop")
 .Filters.Add "Images", "*.jpg; *.jpeg", 1
 .Show
 If .SelectedItems.Count = 0 Then Exit Sub
 p = .SelectedItems(1)
End With

With ActiveCell.MergeArea
 Set pic = ActiveSheet.Shapes.AddPicture( _
  fileName:=p, _
  LinkToFile:=False, _
  SaveWithDocument:=True, _
  Left:=.Left + (.Width - .Height) / 2, _
  Top:=.Top + (.Height - .Width) / 2, _
  Width:=.Height, Height:=.Width _
 )
 pic.Rotation = 90
End With
End Sub
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。
まさに私がやりたかったことです!!!
感謝!感激!
本当にありがとうございました。

お礼日時:2020/12/21 14:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A