• ベストアンサー

エクセルから表をパワーポイントへ貼り付けたときの、位置調整がうまくいきません

エクセルから表をパワーポイントへ貼り付けたときの、位置調整がうまくいきません。宜しくお願いします。 -------------------- sub test1() Dim pptApp As Object Dim pptPre As Object Dim tempFileName As String Dim macrofile As String 'エクセルの貼り付け元のファイル名 Dim sht As String 'エクセルの貼り付け元のシート名 Dim page As Integer 'パワーポイントへの貼り付けたいページ Dim picPos_yoko As Long 'パワーポイントへの貼り付け横位置 Dim picPos_tate As Long 'パワーポイントへの貼り付け縦位置 macrofile = "sample001.xls" sht = "sheet1" tempFileName = ThisWorkbook.Path & Application.PathSeparator _ & macrofile Set pptApp = CreateObject("powerPoint.Application") With pptApp .Visible = True Set pptPre = .Presentations.Open(tempFileName) End With Workbooks(macrofile).Worksheets(sht).Activate Range("A1").CurrentRegion.Copy '表のコピー With pptPre.Slides(page) .Shapes.Paste.Name = "hyou1" With .Shapes("hyou1") .Top = picPos_yoko .Left = picPos_tate End With End With End Sub ------------------------ .Shapes.Paste.Name = "pic1" ↑この行で名前をつけたかったがうまく名前がついていない。  貼り付けた表の名前をパワーポイントのマクロの記録で確認したところ "Group 288"と名前がついていた With .Shapes("hyou1") ↑当然この行で"hyou1"は見つからないというエラーが出てしまう。 表をエクセルからコピーして、パワーポイントへ位置を指定して張り付けるかもしくは貼り付けた後に移動ができるかを実現したい。 何かいい方法はありませんか?パワーポイントへエクセルからグラフを貼り付けた場合はうまくいきました。 また。パワーポイントの表の名前のつけ方には規則性があるのでしょうか。規則性があれば、それに則ってコードをかけるのですが・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.3

書き忘れました。 下のコードにして、名前が変更されていることも確認してください。 オブジェクト名: hyou1 になると思います。  With pptPre.Slides(page).Shapes   .Paste   With .Item(.Count)    .Name = "hyou1"    .Top = picPos_tate    .Left = picPos_yoko    MsgBox "オブジェクト名: " & .Name   End With  End With

asanotosihiro
質問者

お礼

貼り付け位置を調整することができました。ありがとうございました。なるほどこういう手があったのかと関心しました。

その他の回答 (2)

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.2

Pasteメソッドが返すShapeRangeオブジェクトはあまり あてにならないので、すぐには使わず、 いったんSlide.Shapesプロパティから貼り付けたオブジェクトを取得、 名前を設定としてみてください。もしかしたらうまくいくかもしれません。  With pptPre.Slides(page).Shapes   .Paste   With .Item(.Count)    .Name = "hyou1"    .Top = picPos_tate    .Left = picPos_yoko   End With  End With ※バージョンが違うとだめな場合があります。 例えばPPT2007の場合は  pptApp.ActiveWindow.View.Paste  With pptPre.Slides(page).Shapes   With .Item(.Count)    .Name = "hyou1"    .Top = picPos_tate    .Left = picPos_yoko   End With  End With

asanotosihiro
質問者

お礼

今更ながらではございますが、その後VBAの腕も上達して、社内のマクロ担当になっております。ありがとうございました。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

1、位置に関して・・・単に縦横を逆に設定しているだけでしょう。 .Top = picPos_yoko .Left = picPos_tate 2、「名前」は変更できないみたいです。 表は非常にたくさんのオブジェクトがグループ化されたものとして 扱われています。 どうしても名前を付け替えるなら 図として張り付ければ可能でしょう。   貼り付ける場合は必ず最後のshapeになるのでこのようにcountを使うことで名前を取得できます。    .Shapes(.Shapes.Count).Name

asanotosihiro
質問者

お礼

1.これは記述を間違って逆にしてしまいました。誤解を与えてすみませんでした。m__m 2.なるほど図として貼り付けたところうまくいきました。ありがとうございます。

関連するQ&A

  • 表をパワーポイントへ

    こんにちは。 エクセルの表をパワーポイントに 貼り付けたいのですが、 エクセルでコピー → パワ-ポイントにそのまま 貼り付け だと、なんだかすごく重くなってしまいました。 軽く貼り付ける方法ご存知の方いたら ぜひ教えて下さい! よろしくお願いいたします☆

  • エクセルの表をパワーポイントに貼り付けると一部欠けます。

    エクセルで作成した表などを、 パワーポイントへ「コピー&貼り付け」ると お尻の方が欠ける事があります。 小さな表なら問題ありませんが、大きな表は欠けてしまいます。 ダブルクリックしてエクセルの編集状態にしてから、 欠けた部分をドラックで拡げて表示させても パワーポイントに戻すとまた欠けます。 仕方がないので「形式を選択して貼り付け」で 対応していましたが、後から編集ができないので 修正が煩雑になっています。 エクセルのまま貼り付ける事はできないのでしょうか? よろしくお願いします。 (Office2000です)

  • パワーポイントでのエクセルの表・グラフの取り込み

    パワーポイント2002を使用しています。初心者です。 エクセルで作った表やグラフをパワーポイントに取り込みたいのですが、コピー+貼り付けとコピー+形式を選択して貼り付けではどのような違いが出てきますか?

  • エクセルで作成した表のパワーポイントへの貼り付け

    エクセルで作成した表に罫線をつけてからパワーポイントへコピー・貼り付けすると、罫線の右端と 下端が矢印になってしまいます。これを防ぐ、または修正する方法はありますか。 また、コピーでなく、表自体をパワーポイントに取り込んで、パワーポイント内で修正するやり方はありますか。 エクセル・パワーポイントともに2003年版、 OSはwindows2000です。

  • excelの表を図としてパワーポイントへ貼り付けたい

    excelで作った表を、パワーポイントに貼り付けたいと思っています。かなり大きな表なので、表を図として貼り付けたいと考えています。 私が考えた方法は (1)Shift+編集の「図としてコピー」を選ぶ。 (2)パワーポイントに貼り付け しかし、この方法ですると、excelの線(*なんと説明していいのかわからないのですが、描画の線ではなく、セルの線。印刷するときはプリントされないが、画面上では見える、薄いグレーの線です。)も写ってしまいます。 この線を消す良い方法があれば、お教え下さい。

  • パワーポイントVBAでグラフのサイズ・位置を統一

    パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。 1~20枚目のスライドに、それぞれ2つのグラフが貼付けてあります。 全てのグラフサイズ・位置を統一したいと思い、以下の様なVBAを書いてみました。 ---------- Sub 表サイズの統一() Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2 With ActivePresentation.Slides(1).Shapes(1) myTop1 = .Top myLft1 = .Left myHgt1 = .Height myWdt1 = .Width End With With ActivePresentation.Slides(1).Shapes(2) myTop2 = .Top myLft2 = .Left myHgt2 = .Height myWdt2 = .Width End With cnt = ActivePresentation.Slides.Count For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(1) .Top = myTop1 .Left = myLft1 .Height = myHgt1 .Width = myWdt1 End With Next For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(2) .Top = myTop2 .Left = myLft2 .Height = myHgt2 .Width = myWdt2 End With Next End Sub ---------- 各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。 どこが悪いのか、どなたかご教示頂ければ幸いです。 どうぞよろしくお願い致します。

  • エクセルで作った表をパワーポイントに張る時

    エクセルで作った表をパワーポイントに張る時 表(オートシェイプをたくさん使っています。)の 位置関係がおかしくなります。 表はグループ化してはるのですが、イメージ通りに張れません。 どうすればいいのでしょうか? ペイントに一度はりつけてからやればいいのでしょうか?

  • エクセル表をパワーポイントに貼り付けすると

    エクセル表を二つ範囲指定して、パワーポイントに貼り付けをすると 何故かその間にある、目に見えているだけのセルの線 (罫線は引いていません)がそのまま貼り付いてしまいます。 画面コピーのようになってしまうので困っているのですが この線は消えないのでしょうか? お解りになる方、 教えて頂けますよう宜しくお願いいたします。

  • パワーポイント表、エクセルが立ち上がらない

    パワーポイント表、エクセルが立ち上がらない

  • エクセル2003をパワーポイント2003に貼り付ける

    マイクロソフトオフィスのエクセル2003で作成した表をパワーポイント2003に貼り付けたいのですが、そのまま貼り付けられません。パワーポイント2000とエクセル2000の場合は、パワーポイントに貼り付けた表をクリックするとエクセル表になるので、パワーポイント上でエクセル表の計算式を修正できたいへん便利でしたが、2003では使い勝手が悪く困っています。パワーポイント2003とエクセル2003を2000と同じように使用する方法はないでしょうか。パワーポイントとエクセルを2000に戻すしか方法は無いのでしょうか。お教え下さい。

専門家に質問してみよう