Excel (VBA)

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

 
(Windows 10 Pro : その他)
パソコンによってExcelの表がPowerpointにペーストされる大きさが違う
投稿日時: 20/07/27 16:42:47
投稿者: Alice87

Microsoft Excel for Office 365を使用しています。
  
Excelの表をPowerpointにコピペするVBAを作成し、自分のパソコンでは問題なくPowerpointのスライド内に表がおさまるのですが、他のパソコンで同じVBAを使用したところ、表が大きくなってしまいます。
  
ペーストした表のサイズ調整は、ペーストされた後に見た目が良くなるよう大きさを見ながら手動で適した数字を充てこみました。(※該当箇所のコードを文末に抜粋して掲載)
 (どのパソコンでもペースト後の表のサイズは一律と思っていたので、他のパソコンでも活かせると考えていた為)
  
使用するパソコンのExcelもしくはPowerpointの「オプション」内の「詳細設定」によっては、ペースト時の大きさがまちまちなのでしょうか?
また、どのパソコンでも表をスライド内で見やすくペーストされるにはどのようにすれば良いか、ご教示いただけると幸いです。
  
何卒宜しくお願い致します。
  
  'Excelの表をコピー
Range(Cells(start_row, start_col), Cells(end_row, end_col)).Copy
                   
  'pptにペースト
Set ppslide = ppPrs.Slides(1)
 ppslide.Shapes.PasteSpecial DataType:=2, Link:=msoFalse 'datatypeが2は拡張メタファイル
                                     
 '図の位置やサイズ調整
Select Case gaitoh_month
 Case 6
     With ppslide.Shapes(3)
                .LockAspectRatio = msoFalse '縦横比を固定にしない
               .ScaleHeight 1.45!, False
                .ScaleWidth 1.49!, False
                .Top = 130
                .Left = 3.7
         End With
   
〜〜以降割愛〜〜

回答
投稿日時: 20/07/27 18:06:21
投稿者: sk

引用:
With ppslide.Shapes(3)
      .LockAspectRatio = msoFalse '縦横比を固定にしない
      .ScaleHeight 1.45!, False
      .ScaleWidth 1.49!, False

ScaleHeight メソッドや ScaleWidth メソッドを呼び出すのではなく、
Height プロパティや Width プロパティを設定なさればよろしいのではないでしょうか。

投稿日時: 20/07/29 12:08:46
投稿者: Alice87

sk様
 
今回も適切なアドバイスをありがとうございます。
 
ご指摘に基づいて、うまくペーストされている表の縦と横のサイズを控えておき「Application.CentimetersToPoints()」を使ってカッコ内に控えておいたcmを入力してポイントを算出して下記のように変更したところ
解決しました。
(他のパソコンでもきれいにおさまりました。)
 
With ppslide.Shapes(3)
 .LockAspectRatio = msoFalse '縦横比を固定
 .Height = 445.889763779528
 .Width = 707.527559055118
 〜他の部分割愛〜〜
End with
 
今回も助けて下さり、心から感謝します。
ありがとうございました。