

Sub abc()
Dim a
Set a = Selection
If a.Width * 4 / 3 <> 90 And a.Height * 4 / 3 - 1 <> 120 Then
MsgBox ("120x90px以外の画像以外は挿入できません")
End If
End Sub
上のコードを実行するとなぜか120×90以外でも
メッセージが表示されなくなります
(Msgbox a.Width * 4 / 3は90
Msgbox a.Height * 4 / 3は120と正しく表示されます)
更に高さが1px多くなってしまいます(-1)
(高さを調べても121pxではなく120pxでした)
たまにvbaをしている時にあるので
回答と原因もお願いします
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
>If a.Width * 4 / 3 <> 90 And a.Height * 4 / 3 - 1 <> 120 Then
And ではなくて、Or であるのは、別にして、
>更に高さが1px多くなってしまいます(-1)
VBA上で、小数点計算で、そんなにピッタリと行くとは思えないのです。
特に、小数点の割り算で、それも無限小数ですから、Int で端数を切るなり、四捨五入で丸めるなりしないとVBA上では、小数点誤差が出てしまい、そのままでは無理だと思います。
ただ、4 / 3 でpoint から pixel 計算させずに、67.5(90)と90(120)のpointで判定させたほうが誤差は少ないように思います。(括弧内はpixel) やったわけではありませんから、確かとは言いませんが。
有難う御座いました
pixelではなくpointで計算するのは意外でした
>VBA上で、小数点計算で、そんなにピッタリと行くとは思えないのです。
原因は前のマクロでした
(前のマクロにaが代入されたままこのマクロが実行されたのが原因でした)
No.1
- 回答日時:
まず
>MsgBox ("120x90px以外の画像以外は挿入できません")
を実現したいなら、andではなく
If a.Width * 4 / 3 <> 90 or a.Height * 4 / 3 <> 120 Then
ですね。
Andじゃ、片方の寸法が合ってたらメッセージは立ちません。
また、
>高さを調べても121pxではなく120pxでした
と、高さが120pxと判っているのに
>高さが1px多くなってしまいます
とは、一体どういうことでしょうか。
先のANDとORの間違いだったのならそれはそれでですが、そうじゃないならもうちょっと詳しく状況を添えて新しいご相談として投稿し直してみて下さい。
有難う御座いました
AndとOrが違うのは勉強になりました
>>高さが1px多くなってしまいます
原因は前のマクロでした
(前のマクロにaが代入されたままこのマクロが実行されたのが原因でした)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macで画像の切り抜きできないの?
-
htmlの文字が縦書きになる
-
html の divとtable の役割
-
htmlのolやulなどlistにtitleや...
-
ボタンをセル内一杯に表示させ...
-
含む含まないという概念自体の...
-
ホームページの下にあるcopy ri...
-
liタグの中に<p>タグやら<dl>を...
-
改行ほどは行かないけど、若干...
-
リストマーカーをボックス内に...
-
【CSS】ヘッダーの高さが不明の...
-
<h1>、<h2>と<p><div>の行間を...
-
widthやheightの数値に単位(px...
-
liリストタグの背景色に色がつ...
-
Bootstrap3でcontainerがずれる...
-
HTML属性での「""」 「''」違い
-
HTML要素のid/class名の長さに...
-
複数のボタンを等間隔に、かつ...
-
div要素が重なってします
-
テンソル解析(絶対微分学)は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macで画像の切り抜きできないの?
-
HP作成
-
Pythonでエクセルファイルの列...
-
パディングを使ったボックス
-
HP作成について
-
画像を携帯の待ち受けにするに...
-
イラストレータCS4で編集後の画...
-
iPhone Safari 画像の幅指定が...
-
完成したFLASHファイルのサイズ...
-
img要素のwidth属性 height属性
-
サムネイル自動生成プラグインn...
-
px^2+qx+rを(x+2)^2で割って4x+...
-
横幅が狭いホームページ
-
cssで点線を表示する方法
-
レスポンシブWEBデザイン p要...
-
<hn>タグについて質問させて下...
-
画用紙 26cm×37.5cmは 何px で...
-
htmlの文字が縦書きになる
-
htmlのid属性って必要なの?
-
テンソル解析(絶対微分学)は...
おすすめ情報