回転させた図を任意の場所に配置させたいのですが、EXCEL2007になってからShapeRange.Top/Leftに負の値が設定できなくなってしまったようで、任意の場所に配置できなくなってしまいました。
幸いIncrementTopやIncrementLeftには負の値が設定可能なようなのですが、Excel2003の場合とExcel2007の場合で動作が違うことには変わりなく、Excel2003ではTop/Leftの設定だけで済んだものがExce2007ではTop/Leftである程度の基準位置を設定したあと、さらにIncrementTop/IncrementLeftで補正の必要があるように思います。
こんなやり方をしないと図の配置はできないのでしょうか?
具体的には、マクロにて横長や縦長の長方形の図形を挿入し、位置を指定するのですが、図を回転した場合でもTop/Leftは、回転前の図のTop/Leftを設定するので、横長の図を90度回転させ縦長にした場合には、Leftに0を設定しても、回転後の結果の図は左端にはよっておらず、(元の図の横幅-元の図の縦幅)÷2の分だけ空いてしまいます。
なので、EXCEL2003では求められた空きの分だけLeftに負の値を設定するだけでよかったのですが、EXCEL2007ではLeftに負の値が設定できなくなっており、左端に寄せる事が不可能になっています。
以下、現象確認のための簡単なサンプルのマクロを示します。
'縦長の場合です
ActiveSheet.Pictures.Insert("C:\TEMP\BITMAP.BMP").Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 700
Selection.ShapeRange.Width = 100
Selection.ShapeRange.Rotation = 90#
Selection.ShapeRange.Top = Range("B2").Top
Selection.ShapeRange.Left = Range("B2").Left
'横長の場合です
ActiveSheet.Pictures.Insert("C:\TEMP\BITMAP.BMP").Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 100
Selection.ShapeRange.Width = 700
Selection.ShapeRange.Rotation = 90#
Selection.ShapeRange.Top = Range("B2").Top
Selection.ShapeRange.Left = Range("B2").Left
内容はなんでもいいのでBITMAP.BMPという図のファイルを用意してください。
上記マクロは"B2"のセル位置が図形の左上を原点とするようにしたいのですが、全く違うところに図が配置されます。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
駄案に近いですが、一度 .CopyPicture してみるとか^ ^;
Sub try()
With ActiveSheet
With .Pictures.Insert("C:\TEMP\BITMAP.BMP")
With .ShapeRange
.LockAspectRatio = msoFalse
.Height = 700
.Width = 100
.Rotation = 90#
End With
.CopyPicture
.Delete
End With
.Paste '.Range("B2")'直接指定なら以下不要
End With
With Selection.ShapeRange
.Top = .Parent.Range("B2").Top
.Left = .Parent.Range("B2").Left
End With
End Sub
end-uさん、こんにちは
ご回答ありがとうございます。
その通りなんですよ、回転させた後にコピーもしくは切り取りして貼り付けなおした場合には、図の原点が回転後の図の左上になるため、見たままの配置が可能なんですが、お察しの通り、貼り付けなおしているので図形書式で回転指定した角度が0になってしまいます。またご存知だとは思いますが、EXCELで図を回転させると図の品質が低下してしまうので、元に戻す事が出来ない状態です。
いろいろ調べた結果、.Top / .Leftである程度の位置に移動させてから、IncrementTopとIncrementLeftに必要となる負の値を指定し位置の補正をする事で目的の位置に移動させることができました。
どうやらEXCEL2007からは.Top/.Leftに負の値を設定することができなくなったようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- その他(Microsoft Office) エクセルのマクロでスライサー教えてください。 1 2022/09/28 16:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
回転させた画像を左上のセルにフィットさせたい
Excel(エクセル)
-
-
4
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
5
VBA 写真の挿入 回転
その他(Microsoft Office)
-
6
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
9
マクロを実行中に、msgbox を表示させたまま、ワークシートを上下左右に移動表示させたい。
Excel(エクセル)
-
10
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
11
VBAで写真を設定したフレームに挿入しようとしたが、Rotation=90の場合うまくいかない
Excel(エクセル)
-
12
エクセルVBAで画像を貼り付ける座標設定方法は?
PowerPoint(パワーポイント)
-
13
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
14
VBA Shapes コピーと名前
Excel(エクセル)
-
15
ユーザーフォーム スクロールバー 非表示にしたい
Excel(エクセル)
-
16
UserForm1.Showでエラーになります。
工学
-
17
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
18
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
19
Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
ある範囲のセルから任意の値を...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
一番多く表示のある値(文字列...
-
精液の落とし方を教えてください
-
エクセル指定した範囲からラン...
-
エクセルのラベルの値(文字列...
-
EXCELで条件付き書式で空白セル...
-
値が入っているときだけ計算結...
-
MIN関数で空白セルを無視したい...
-
甲状腺が腫れているが血液検査...
-
エクセルで数式の答えを数値と...
-
テスターで断線を調べる方法教...
-
エクセルでθを求めたい。
-
小数点以下を繰り上げたものを...
-
中出しをするとお腹が痛い・・・。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
これって喉仏ですか? 私は女性...
-
中出しをするとお腹が痛い・・・。
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
尿検査前日に自慰行為した時の...
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
口の中に黒い血の塊
-
【Excelで「正弦波」のグラフを...
-
エクセル指定した範囲からラン...
おすすめ情報