
お世話になります。
工事写真を("工事写真台紙")シートに挿入するVBAを組みました。
アクティブセルの Left Top と写真の Left Top を合わせて
所定の位置に貼り付ける事が出来ています。
ところが1つ問題が出てきました。
デジカメを横(右90度)にして撮影した写真(縦長の写真)を貼り付ける必要が出てきたので
VBAで貼り付ける際、Rotation = 90# で回転させましたが
アクティブセルの Left Top と写真の Left Top を合わせても
セルと写真の左上は合いません。
写真を回転させても、位置情報としての写真の Left Top は変らないみたいです。
見た目の左上を合わす事が出来ません。
座標を取得すれば・・?sin.cos.tan・・?
セルの width と 写真の width・・?
Increment で移動して・・?
煮詰まってどうにもなりません。
どなたかご教授下さい。
No.2ベストアンサー
- 回答日時:
考え方: 正方形なら90度回転させても、各頂点の位置は同じ位置です。
座表計算は不要です。
Sub Sample()
Dim sngBackup As Single
Application.Dialogs(xlDialogInsertPicture).Show
With Selection.ShapeRange
'位置決め
.Top = ActiveCell.Top
.Left = ActiveCell.Left
'横サイズを変数に保持
sngBackup = .Width
'アスペクト比を保たないに変更
.LockAspectRatio = msoFalse
'正方形にしてしまう-->90度回転しても頂点は同じ位置にある
.Width = .Height
'90度回転
.Rotation = 90#
'元のサイズに戻す
.Width = sngBackup
'アスペクト比を保つに戻す
.LockAspectRatio = msoTrue
End With
End Sub
# マクロ(VBA)のご質問で、既存コードがある場合はコードを提示した方が
# 良いと思います。殊にプログラムについては、それが質問者と回答者の間で
# 一番誤解が無く情報が伝わり、質問者にとっては素早い回答が期待できるし、
# 回答者にとっても既存コードのコピペで動作チェックできて楽だからです。
この回答への補足
補足をお礼の後に書きますが、左回転の件も解決しました。
下記コード追記しました。
.Top = .Top + (BackupW - .Height)
KenKen Sp さんのコードが参考になりました。
有難うございました。
KenKen SPさん ご回答有難うございます。
>正方形にしてしまう
なるほど!の発想です。
考えが及びませんでした。
Sub ボタンクリック()
Dim BackupW As Single
If TypeName(Selection) = "Picture" Then
With Selection.ShapeRange
BackupW = .Width
.LockAspectRatio = msoFalse
.Width = .Height
.Rotation = 90#
.Width = BackupW
.LockAspectRatio = msoTrue
End With
Else
MsgBox "回転させる写真を選択して下さい。", vbOKOnly, "[ 右90度回転 ]"
End If
End Sub
ご回答のコードで右回転解決しました。有難うございました。
欲を言って、左回転の場合は( .Rotation = -90# )
写真の(見た目の)左上位置とセルTop が合わなくなりますが
どこに注目してコード追記すれば良いでしょうか?
やはり写真のTop座標を求めて、セルTop に合わせるのか・・
別の質問みたいですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
VBAのユーザーフォームのイメージコントロールに読み込んだ画像を左に90°回転させたい
Visual Basic(VBA)
-
エクセルVBAで画像を回転させる方法
Excel(エクセル)
-
-
4
イメージコントロールに 読み込んだ Picture を 90度 回転したい
Visual Basic(VBA)
-
5
回転させた画像を左上のセルにフィットさせたい
Excel(エクセル)
-
6
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
7
VBAで写真を設定したフレームに挿入しようとしたが、Rotation=90の場合うまくいかない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
高2男子です。最近、お◯にーを...
-
【オナニーのおかず】写真見て...
-
知り合いの写真で抜いたことは...
-
iPhoneで、写真の真ん中を切り...
-
マッチングアプリでモテるプロ...
-
これは何ですか? 時々黒い粒が...
-
ラミネートを剥がす方法を教え...
-
女友達に「昨日インスタにあげ...
-
彼女の写真で抜くのはおかしいか
-
ドコモショップの従業員さんに...
-
子供のころの写真を見せる
-
SNSや質問するなどのサイトで
-
PCで G、Hドライブ(Google dri...
-
LINEで、食べ物の写真を送って...
-
男の人に聞きます! ラインのア...
-
付き合ってないのに、ツーショ...
-
幼稚園集合写真で心霊現象、?...
-
好きな女性の写真を欲しがる心...
-
1人で性欲処理を行う際 相手の...
-
妻のヌード写真を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【オナニーのおかず】写真見て...
-
高2男子です。最近、お◯にーを...
-
知り合いの写真で抜いたことは...
-
彼女の写真で抜くのはおかしいか
-
妻のヌード写真を
-
エクセルに貼付けた写真の容量(...
-
これは何ですか? 時々黒い粒が...
-
ドコモショップの従業員さんに...
-
ラミネートを剥がす方法を教え...
-
「※写真はイメージです。」に決...
-
PCで G、Hドライブ(Google dri...
-
iPhoneで、写真の真ん中を切り...
-
庭木の表皮に変なものが貼り付...
-
男性にお聞きしたいです LINEの...
-
SNSや質問するなどのサイトで
-
自分の若い頃の写真を見せたが...
-
「写真撮影は~」を英語にすると?
-
LINEは交換してくれて毎日話し...
-
カカオトークで写真を送るとと...
-
浮気したい相手に、子供の写真...
おすすめ情報