2011-12-22 22 views
0

私はちょうど問題がたくさんあり、解決策を見つけることができません。 Excel 2003で数年前から使用されていた非常に大きなマクロを作成しました。今、私の友人はオフィス2010にアップグレードしました。突然マクロは突然動作しません。VBAコードはExcel 2010と同様に動作しませんか?

変数の小数点以下を削除するようなエラーがこの行に1つあります。 この行:Excel 2003では

varHeight = ActiveSheet.Pictures("temp").Height 

この行は、「TEMP」と呼ばれる画像の高さを読み込み、変数「varHeight」値5,25を取得します。

Excel 2010で同じ変数を試してみると、 "varHeight"変数の値が5になります。ここでは、小数点以下が削除されています。私はこれがどうして起こるか分かりません。

変数varHeightはこのラインで宣言されています。私はこのマクロで何

Dim AntalMMPerPixel, IsoHöjd, varHeight As Double 

は、私は青写真を構築するために切り抜いた写真を使用して設計図を構築することです。だから、私はその写真の高さを使って残りの部分を配置する場所を計算します。

は、私ははるかに高く評価は、Excel 2003とExcel 2010

任意のヒントやアイデアの両方で、値が変数に割り当てられているかを確認するために、コードにブレークポイントを使用しましたか?

最高のお礼

+0

varHeightはどのように宣言されていますか? –

+0

詳細を入力する必要があります。 justnSが尋ねるように、どのタイプの変数が 'varHeight'ですか?価値観がどう違っているのか、どうやって知っていますか?画像の高さを取得した後、varHeightで何をしていますか? –

+0

FWIW: '' Height''プロパティはDoubleを返します。 –

答えて

0

あなたが持っているので、私はPictureコレクションのドキュメントを見つけることができないようです。バージョン間で変更があったかもしれませんが、文書化されていないようです。シェイプオブジェクトを利用して、それがまったく役立つかどうかを調べることができます。しかし、私はExcel 2003で正しい倍精度を与えましたが、Excel 2010でテストすることができません。

Public Sub Test() 

    MsgBox GetPictureHeight(Sheets("Sheet1"), "Picture 1") 
End Sub 

Public Function GetPictureHeight(wrk As Worksheet, pictureName As String) As Double 
'returns the height of the named picture on the specific worksheet 

    Dim pic As Shape 

    Set pic = wrk.Shapes(pictureName) 

    GetPictureHeight = pic.height 
End Function 
+0

私は上記のコードを試してみましたが、Excel 2010では値5が得られました。小数点はありませんか?それは奇妙なことではなく、彼らはpicture.heightについて何かを変えることができたので、それ以上は小数点を使用しません。奇妙だと思う。 – Evilaid

+0

私はWindows 7 Enterpriseで動作するExcel 2010米国英語でこれをテストしたばかりです。私のサンプル画像では、値590.400024を取得します...これは10進値を返しています。 –

+0

あなたはしましたか?私はこれを理解できない?私はちょうどそのExcel 2010がスウェーデン語版であり、スウェーデン語では "、"小標本と米国の使用をマークすることを義務付けました。センセーショナルな窓は英語ですが、そこに何かがあるかもしれませんか?多分? – Evilaid

関連する問題