Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 8.1 : Excel 2007)
EXCEL2007 VBAとwindows8の相性について
投稿日時: 19/02/08 12:55:42
投稿者: かずおか

エクセル2007をwindows8のPCで使っています。
これまでwindowsXPのPCで使っていました。
 
VBAで作成した 矢印作成命令でズレが生じました。
 
XPで作成したVBAです。
ActiveSheet.Shapes,AddShape(msoShapeLeftRightArrow,X0,Y0,W1,H1)
を使っています。
 
左のセルから順に右のセルへこの命令で描写していきますと、少しづつ矢印が、右にずれて描写されていきます。
この原因は、何でしょうか?
教えてください。

回答
投稿日時: 19/02/08 14:48:52
投稿者: WinArrow
投稿者のウェブサイトに移動

同じ環境でないと確認できないので(再現できない)
回答は非常に難しいと思います。
 
同一OS,excel同一バージョンでも、図形は微妙にずれるという話を聞いてことがあります。
図形を挿入するとき
セルの移動やサイズ変更に影響させない
という設定があると対策できるかもしれません。
 
まったくの推測なので外しているかもしれません。
 
 
 

投稿日時: 19/02/08 16:05:06
投稿者: かずおか

WinAroowさんへ
 
ご回答ありがとうございます。
確かにご指摘のような設定があると良いですね。
探してみます。

回答
投稿日時: 19/02/08 17:24:28
投稿者: WinArrow
投稿者のウェブサイトに移動

↓は
「セルに合わせて移動やサイズを変更しない」
設定です。
 
 
 
Dim X0 As Single, Y0 As Single, w1 As Single, H1 As Single
Dim Shape As Shape
 
    With Range("C3")
        X0 = .Left
        Y0 = .Top
        w1 = .Width
        H1 = .Height
    End With
    Set Shape = ActiveSheet.Shapes.AddShape(msoShapeLeftRightArrow, X0, Y0, w1, H1)
    Shape.Placement = xlMoveAndSize

投稿日時: 19/02/08 18:42:01
投稿者: かずおか

WinArrowさんへ
 
重ねてのアドバイス、大変ありがとうございます。
試してみます。
また、報告させていただきます。
 
ありがとうございます。

投稿日時: 19/02/08 19:59:38
投稿者: かずおか

WinArrowさんへ
 
アドバイスの通り一部変更しましたが、改善されませんでした。
手元にレファレンスマニュアルがないので、それを紐解いて多々試してみます。

回答
投稿日時: 19/02/10 15:52:09
投稿者: WinArrow
投稿者のウェブサイトに移動

Excelのサイズに関する基本は、ポイントで指定しますが、
PCの仕様は、ピクセルです。
ポイントで指定しても、結局はピクセルに変換されて表示されますから、
 
ピクセルは、スクリーンの仕様によって、機器ごとに異なる可能性があります。
 
もしかしたら、変換する際の誤差かもしれません。

回答
投稿日時: 19/02/10 15:59:08
投稿者: WinArrow
投稿者のウェブサイトに移動

試しに
 
セルの行の番号と番号、または、列の記号と記号の間に
カーソルを持っていくと、
行ならば、「高さ:12.00(16 ピクセル)」・・・12.00は、ポイント数
列ならば、「幅:8.43(64 ピクセル)」・・・・8.43は、文字数
のように表示されます。
 
この数値を両方のPCで比較してみましょう。

投稿日時: 19/02/11 08:13:46
投稿者: かずおか

WinArrowさんへ
 
重ねてのアドバイス、ありがとうございます。
セルの高さと幅については、いずれのPCでも同じです。
まだ、解決の糸口が見つけられませんが、じっくりと探していきます。

投稿日時: 19/02/11 08:23:40
投稿者: かずおか

WinArrowさんへ
 
なぜか解消しました。していました。
なぜか?不明ですが、とりあえずは『良し』とします。
 
これまでのアドバイス、大変ありがとうございました。