
以下の文でvbaを動かしています。しかし、スマホで撮影した縦向きの写真のみ設定している場所に貼ることができません。webで拾った縦の画像やスマホ撮影の横向きは貼れます。
初心者のためのその原因がわかりませんわかる方がいましたら教えて欲しいです。
Dim sheet As Worksheet
Dim filePath As String
Dim targetRange As Range
Dim picture As Shape
Dim targetRangeHeight, targetRangeWidth As Single
' シートを指定する
Set sheet = ActiveSheet
' ファイルを選択
filePath = Application.GetOpenFilename
If filePath <> "False" Then
Else
Exit Sub
End If
' 貼り付ける範囲を指定する
Set targetRange = Range("B4:J28")
targetRangeWidth = targetRange.Width '幅
targetRangeHeight = targetRange.Height '高さ
' 図を挿入する
Set picture = sheet.Shapes.AddPicture( _
filename:=filePath, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=0, _
top:=0, _
Width:=-1, _
Height:=-1)
With picture
.LockAspectRatio = True
' 画像の大きさを設定する
.Left = targetRange.Left
.top = targetRange.top
' 指定範囲よりも画像の縦横両方が小さい場合
If .Width > targetRangeWidth And .Height > targetRangeHeight Then
.Width = targetRangeWidth
If .Height > targetRangeHeight Then
.Height = targetRangeHeight
End If
End If
End With
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは
PowerPointのカテですけれど、PPに貼る場合の処理??
どう見ても、エクセルっぽいので、以下は、エクセルと仮定しての回答です。
>縦向きの写真のみ設定している場所に貼ることができません。
「貼ることができない」の意味がわかりませんが、所定の位置には表示されているのではないでしょうか?
それとも、画像が表示できないってことでしょうか?
ざっと見て想像するところ、「画像は貼れるがサイズの調整ができない」ってだけではないのでしょうか?
実際に何が起こっているのかわかりませんけれど、想像があたっているなら、ご提示のコードだと、
「縦横ともにセル範囲より大きい時だけサイズ調整をする」
ような処理になっているのが原因ではないでしょうか?
(片方が小さかったり、両方小さければ調整されない)
普通だと、指定した範囲に収まるように、縦(または横)がピッタリになるようにサイズ調整するとかが多いと思いますが、質問者様がどうなさりたいのかもわかりません。
現状のサイズ調整を必ずできるようにしたいのなら、最初のIF文を削除すればよいと思われます。
(これで、すべての画像に対してサイズ調整するようになります)
具体的には、
.Width = targetRangeWidth
If .Height > targetRangeHeight Then .Height = targetRangeHeight
End If
とするとか。
表示位置はセル範囲の左上に合わせられていますが、中央合わせにしたい場合には、例えば横方向なら、
(targetRangeWidth - picture.Width)/2
分だけ微調整すれば良いことになります。(縦方向も同様)
※ 未確認ですので、外していたらスルーしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointのスライドの途中で...
-
パワーポイント「スライドショ...
-
PowerPointで、作成されたファ...
-
Microsoft Office2016をOffice2...
-
パワーポイントを2in1でPDF化し...
-
音声マークを一括非表示にしたい。
-
エクセル・パワーポイントなど...
-
パワーポイントでスライドショ...
-
皆さん、おはようございます♪ ...
-
PowerPointの置換の「すべて置...
-
【画像あり】パワーポイントの...
-
ExcelのグラフをPowerPointに貼...
-
パワーポイントの表
-
プレゼン時のポインター
-
PowerPointでスライドマスタの...
-
パワーポイント、円グラフの1...
-
PowerPointのオプションの設定...
-
MicrosoftOffice 2019等とonlin...
-
パワポ 矢印について
-
パワーポイントモバイル 印刷時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ピクチャーボックスの大きさに...
-
jQuery BoxerというLightBoxに...
-
教えてください。困ってます。D...
-
画像中の線分の点線化・破線化...
-
ExcelVBAで挿入画像の縦横サイ...
-
Powerpointに貼った画像のサイ...
-
一行は何ピクセル?
-
ASP.NETで画像の高さと幅を取得
-
複数の画像を1枚にしたファイ...
-
ImageMagickで横幅のピクセルを...
-
画像の縮小をすると粗くなって...
-
Dreamweaverで縦の区切り線あり...
-
DIRECTXのスプライト描...
-
画像について。
-
Webの画像はサイズを決めてから...
-
ホームページビルダーの表の大...
-
VB6でピクチャーのサイズの出し方
-
pop upウィンドウを画像サイズ...
-
jpegの圧縮率の取得
-
VB.NETでの画像処理について
おすすめ情報