
回転させた図を任意の場所に配置させたいのですが、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】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
-
4
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBAで写真を設定したフレームに挿入しようとしたが、Rotation=90の場合うまくいかない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
風俗店へ行く前のご飯
-
至急!尿検査前日にオナニーし...
-
EXCELで式からグラフを描くには?
-
検便についてです。 便は取れた...
-
尿検査の前日は自慰控えたほう...
-
血液検査の結果が悪くefgrの値...
-
納豆食べた後の尿の納豆臭は何故?
-
値が入っているときだけ計算結...
-
精子に血が・・・
-
イタリアから帰国する際、肉製...
-
勃起する時って痛いんですか? ...
-
2つの数値のうち、数値が小さい...
-
リンク先のファイルを開かなく...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報