Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8433 / 13646 ツリー ←次へ | 前へ→

【33277】VBAで棒グラフを書いてますが・・大きさが mame 06/1/7(土) 9:56 質問[未読]
【33281】Re:VBAで棒グラフを書いてますが・・大きさ... だるま 06/1/7(土) 10:35 回答[未読]
【33288】Re:VBAで棒グラフを書いてますが・・大きさ... mame 06/1/7(土) 13:41 質問[未読]
【33290】Re:VBAで棒グラフを書いてますが・・大きさ... だるま 06/1/7(土) 16:23 回答[未読]
【33292】Re:VBAで棒グラフを書いてますが・・大きさ... mame 06/1/7(土) 16:53 質問[未読]
【33291】Re:VBAで棒グラフを書いてますが・・大きさ... ichinose 06/1/7(土) 16:51 発言[未読]
【33293】Re:VBAで棒グラフを書いてますが・・大きさ... mame 06/1/7(土) 16:56 質問[未読]
【33294】Re:VBAで棒グラフを書いてますが・・大きさ... ichinose 06/1/7(土) 17:07 発言[未読]
【33332】Re:VBAで棒グラフを書いてますが・・大きさ... mame 06/1/9(月) 14:52 お礼[未読]

【33277】VBAで棒グラフを書いてますが・・大きさが
質問  mame  - 06/1/7(土) 9:56 -

引用なし
パスワード
   ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
                Range("H56).Left, _
                Range("H56).Top + 4.5, _
                Range("H56).Width + 123, _
                Range("H56).Height - 4.5).Select

このように書きました。
長さ(Width)は100%で123です。
50%の時に単純に、123/2 としたのですが
実際図をクリックすると、100%のときに6.24cm 50%の時に61.5cmと
うまくいきません。
おそらくマクロはcmで指定でないため、ピクセルなのかな??とも思いますが
上記コマンドで、cm指定はどのようにするのでしょうか?

【33281】Re:VBAで棒グラフを書いてますが・・大き...
回答  だるま WEB  - 06/1/7(土) 10:35 -

引用なし
パスワード
   Application.CentimetersToPoints

で変換して指定します。^d^

【33288】Re:VBAで棒グラフを書いてますが・・大き...
質問  mame  - 06/1/7(土) 13:41 -

引用なし
パスワード
   すみません・・使い方が分からないのですが

【33290】Re:VBAで棒グラフを書いてますが・・大き...
回答  だるま WEB  - 06/1/7(土) 16:23 -

引用なし
パスワード
   Shapeの位置や大きさはポイント単位で指定します。
Rangeの位置や大きさはポイント単位で取得出来ます。

リテラルで指定する時、例えば10cmを指定したければ

Application.CentimetersToPoints(10)

とすればこれがポイント単位の値になります。^d^

【33291】Re:VBAで棒グラフを書いてますが・・大き...
発言  ichinose  - 06/1/7(土) 16:51 -

引用なし
パスワード
   ▼mame さん:
こんにちは。

>ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
>                Range("H56).Left, _
>                Range("H56).Top + 4.5, _
>                Range("H56).Width + 123, _
>                Range("H56).Height - 4.5).Select
>
>このように書きました。
>長さ(Width)は100%で123です。
>50%の時に単純に、123/2 としたのですが
実際の50%のときのコードも提示してください。
因みに上記のコードだとセルH56のセル幅によって
作成される図形のWidthの大きさも違ってきますよね?


>実際図をクリックすると、100%のときに6.24cm 50%の時に61.5cmと
>うまくいきません。
こういう記述はいけません。
本来なら、xxxxという結果にしたいのに
YYYYという結果にしかなりません。
というようなハッキリした記述をして下さい。

【33292】Re:VBAで棒グラフを書いてますが・・大き...
質問  mame  - 06/1/7(土) 16:53 -

引用なし
パスワード
   ごめんなさい、リテラル ってなんでしょうか?

>リテラルで指定する時、例えば10cmを指定したければ
>
>Application.CentimetersToPoints(10)
>
>とすればこれがポイント単位の値になります。^d^

【33293】Re:VBAで棒グラフを書いてますが・・大き...
質問  mame  - 06/1/7(土) 16:56 -

引用なし
パスワード
   ▼ichinose さん:
>▼mame さん:
>こんにちは。
>
>>ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
>>                Range("H56).Left, _
>>                Range("H56).Top + 4.5, _
>>                Range("H56).Width + 123, _
>>                Range("H56).Height - 4.5).Select
>>
>>このように書きました。
>>長さ(Width)は100%で123です。
>>50%の時に単純に、123/2 としたのですが
>実際の50%のときのコードも提示してください。
>因みに上記のコードだとセルH56のセル幅によって
>作成される図形のWidthの大きさも違ってきますよね?
そうですね、セルの幅によって変わってしまうんですね。
どういう書き方が良いのでしょうか?
アドバイスをお願いします

>
>
>>実際図をクリックすると、100%のときに6.24cm 50%の時に61.5cmと
>>うまくいきません。
>こういう記述はいけません。
>本来なら、xxxxという結果にしたいのに
>YYYYという結果にしかなりません。
>というようなハッキリした記述をして下さい。
>>ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
>>                Range("H56).Left, _
>>                Range("H56).Top + 4.5, _
>>                Range("H56).Width + 61.5, _
>>                Range("H56).Height - 4.5).Select
50%の時は、Widthを半分にして、123/2 で +61.5 としました。
そしたら、図のサイズは100%のときに6.24cmだったので
50%の時は3.12cmを期待していたのですが
4.07cmになってしまいました。

【33294】Re:VBAで棒グラフを書いてますが・・大き...
発言  ichinose  - 06/1/7(土) 17:07 -

引用なし
パスワード
   つまり、100%の半分のスケールを50%にしたいということですね
>>
>>>ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
>>>                Range("H56).Left, _
>>>                Range("H56).Top + 4.5, _
>>>                Range("H56).Width + 123, _
>>>                Range("H56).Height - 4.5).Select
>>>
>>>ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
>>>                Range("H56).Left, _
>>>                Range("H56).Top + 4.5, _
                  (Range("H56).Width + 123)/2, _
>>>                Range("H56).Height - 4.5).Select
ですよね?
正確には、

Int((Range("H56").Width + 123) / 0.75) * 0.75

が100%のWidthで

Int((Range("H56").Width + 123) / 2 / 0.75) * 0.75

が50%のWidthですが・・・。

ポイントは0.75単位ですから。

【33332】Re:VBAで棒グラフを書いてますが・・大き...
お礼  mame  - 06/1/9(月) 14:52 -

引用なし
パスワード
   >ポイントは0.75単位ですから。


ありがとうございました。
ポイントは0.75単位 を知りませんでした。

8433 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free