【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

代記の通りなのですが、VBを利用して、PowerPointのマクロを実行したいのですが、開くところは分かるのですが、実行する記述が分かりません。

どなたかヒントになることを教えていただけないでしょうか?

また、マクロの内容なのですが、EXCELで作ったサンプルデータの内容のグラフを表示したいのですが、マクロ機能を使ってデータのインポートを行ったところ、インポート部分のマクロのみ記述されませんでした。

こちらの方もどなかたヒントになることをご存知の方がおりましたアドバイスをいただけると幸いです。

よろしくお願いします。

環境:WIN_XP
VB6
POWERPOINT 2000

このQ&Aに関連する最新のQ&A

A 回答 (5件)

でけた



Set msGrf = ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Object.Application
With msGrf
  .FileImport "C:\Book1.xls"
End With
    • good
    • 0
この回答へのお礼

あああああああああああああ!!!!!!!!!

出来てるぅぅぅぅぅぅ!!!!!

すげぇぇぇぇぇぇぇ!!!!!!!

まさか本当に出来るとは思いませんでした、大変感謝をしております。
長い間お付き合いしていただいてありがとうございました2chさん!

参考にさせていただいて製作させていただきます
本当にありがとうございました。
またなにかありましたらよろしくお願いします。

では。

お礼日時:2003/06/12 10:44

完全制覇となると、時間がかかりそうなので、ちょっとだけご報告。


Chartオブジェクトを操作するとよいかも?

一発取り込みまでは調査してないけど、値のセットならでけた。
参考:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=292031


'宣言に追加
Dim msChart As Chart

'ほにゃららコード
'ほにゃららコード
'ほにゃららコード
'ほにゃららコード


'サイズせっと
With ppApp.ActiveWindow.Selection.ShapeRange
  .Left = 120#
  .Top = 109.875
  .Width = 480#
  .Height = 320.25
End With
'ここでチャートをげっちゅ
Set msChart = ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Object
'ここでチャートのデータテーブルに値をせっと
msChart.Application.DataSheet.Cells(2, 5) = 10

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=292031
    • good
    • 0
この回答へのお礼

なんどもなんどもレスありがとうございます。

確かに2chさんの表記の通りでデータをいじることが出来ました!!

なんとか今自分もそこからデータを一括で入れる方法
(データを削除してからインポート)を模索中です。

ありがとうございます。

お礼日時:2003/06/11 16:27

>Microsoft Graph Visual Basic


[挿入]→[グラフ]
のグラフ?

この回答への補足

やりたいことはMicrosoft PowerPointの[挿入]→[グラフ] です。

そしてそのデータ範囲に、自分で作っておいたExcelデータを読み込ませたいのです。

メニューコマンドでいうとグラフを選んだ状態で[編集]→[ファイルのインポート]です。

PowerPointのグラフはMicrosoft Graphの機能を使っているようなのでそこに依存してくるようです。

不完全ですが、自分の作ったプログラムを載せておきます。
グラフの表示までは出来ているのですが、インポートが出来ない状態です。

'参照設定に
'パワポの10ライブラリと
'オフィスの10ライブラリと
'マイクロソフトグラフの10ライブラリを使用しています。
'(OfiiceXP使用時)

Option Explicit

Private Sub Command1_Click()
Dim ppApp As PowerPoint.Application
Dim ppWin As PowerPoint.Presentation
Dim msGrf As Graph.Application

On Error GoTo errGo

'オブジェクトの作成
Set ppApp = New PowerPoint.Application

ppApp.Visible = msoTrue
AppActivate ppApp

Set ppWin = ppApp.Presentations.Add

'白紙のスライドを追加
ppWin.Slides.Add Index:=1, Layout:=ppLayoutBlank

ppApp.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120#, _
Top:=110#, Width:=480#, Height:=320#, ClassName:="MSGraph.Chart", _
Link:=msoFalse).Select
ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Activate

With ppApp.ActiveWindow.Selection.ShapeRange
.Left = 120#
.Top = 109.875
.Width = 480#
.Height = 320.25
End With

'エクセルの挿入
'With msGrf
' .Chart = ppApp.ActivePresentation.Slides(1).Shapes(1)
'End With
Set msGrf = New Application
With msGrf
.FileImpor FileName:="C:\新規Microsoft Excel ワークシート.xls"
End With

'ファイルの保存
ppApp.ActivePresentation.SaveAs FileName:="C:\プレゼンテーション1.ppt"


'終了
ppApp.Quit
End

errGo:
MsgBox Err.Number & vbCrLf & Err.Description


End Sub

補足日時:2003/06/11 13:14
    • good
    • 0

パワポを外部から、初めて呼んでみた。


画面にVBAのエディタが表示されないと、マクロが走らなかった。

これって、仕様か?


やってみたソースを載せておく。



VB側
Sub Main()
  Dim pptApp As Object
  
  Set pptApp = CreateObject("PowerPoint.Application")
  pptApp.Visible = True
  pptApp.Presentations.Open "c:\てすと.ppt"
  
  'VBEditorの画面を表示する
  DoEvents
  Call SendKeys("%{F11}", True)
  DoEvents
  
  Call pptApp.Run("TEST")
  
  pptApp.Quit
  Set pptApp = Nothing
End Sub


パワポ側
Public Function TEST() As VbMsgBoxResult
  TEST = MsgBox("メッセージボックスです")
End Function
    • good
    • 0
この回答へのお礼

前回に引き続きありがとうございます2chさん
マクロを動かすことは出来ました。
確かにVBEditorも一緒に動いてしまいますね。
特に問題ないのでマクロの方はOKです!!

ですが、ファイルのインポートがどうしても出来ません。

Microsoft Graph Visual BasicリファレンスというものにFileImportというメソッドがあるのですが、イマイチ使い方が分かりません。

むーむ、、、使用経験がございましたらアドバイスをいただけると幸いです。

お礼日時:2003/06/11 10:02

VBAなら、エクセルといっしょかな



参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=322783
    • good
    • 0
この回答へのお礼

ありがとうございます。
マクロはどうにかなりそうなのですが、
EXCELで作ったサンプルデータの内容のグラフを表示という部分がどうしても解決しません。

powerpointのプロパティ一覧など分かりやすいHPなどご存知でしたら教えていただきたく思います。

お礼日時:2003/06/10 16:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelとPowerPointをVBAで連携させる方法

おけましておめでとうございます。
本年もよろしくお願いします。
で、本題ですが、
(Win95でExcel2000とPowerPoint2000を使用)
EXCELのデータベースの表を順々にPowerPointのテキストボックスへ
コピーして印刷するためにVBAを作成したいと思ってます。
(印刷形式がPowerPointのため)
ここには作成できるんですが、両者のVBAをどのように
連携させるかわかりません。
よろしくご教授ください。

また、PowerPointのVBAでマクロの記録を使わず、オブジェクト名
(("Text Box 1")とか)を知る方法もあわせてよろしくご教授ください。

Aベストアンサー

>オブジェクト名はVBAを使わずにパワーポイント上だけでは確認しようが無いと言うことでしょうか。

絶対できないとまでは断言できる自信はないのですが、少なくともその方法は知りません。

オブジェクト名はVBAを使えば変更することはできます。
Application.ActiveWindow.Selection.SlideRange.Shapes.Item(1).Name = "New Name 1"

だだ、この設定した名称が勝手に変更されることはないのかどうか自信がありません。少なくとも自動的に生成した「オブジェクト名」は勝手に変更されてしまいます。

Q【VB.NET】 パワポ操作を非表示で

 質問させていただきます.
どうぞよろしくお願いいたします.

 PowerPointの操作をするコードを作成して使っております.
毎回立ち上がるパワポのウィンドウを非表示にしたいのですが,
myAPP.Visible = True状態でないと,presentations.Openでエラーが出てしまいます.

Dim myAPP As Object
myAPP = CreateObject("PowerPoint.Application")
Dim myAPPpre = myAPP.presentations
Dim Mypath As String = TextBoxパス.Text
Dim FName As String

myAPP.Visible = True

FName = Dir(Mypath & "test.ppt", vbNormal)
With myAPPpre.Open(Mypath & FName) '←上のmyAPP.Visible = Trueを消すとエラー
                    '「Presentations.Open : 無効な要求です。PowerPoint のフレーム ウィンドウは存在しません。」となります.

 どうにか見えない状態で実行できないものでしょうか.
調べておりますと,同じ現象がよくあるようでした.
(http://www.kotaete-net.net/Default.aspx?pgid=14&qid=80254136041
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept07/hey0921.mspx のページ中間あたり「さいわい、Visible プロパティを True に設定することによって~」のところ.)

 もし何か方法が分かるかたがいらっしゃいましたら,
アドバイスいただければと思います.
 どうぞよろしくお願いいたします.

 質問させていただきます.
どうぞよろしくお願いいたします.

 PowerPointの操作をするコードを作成して使っております.
毎回立ち上がるパワポのウィンドウを非表示にしたいのですが,
myAPP.Visible = True状態でないと,presentations.Openでエラーが出てしまいます.

Dim myAPP As Object
myAPP = CreateObject("PowerPoint.Application")
Dim myAPPpre = myAPP.presentations
Dim Mypath As String = TextBoxパス.Text
Dim FName As String

...続きを読む

Aベストアンサー

Openの引数WithWindowの既定値はmsoTrueですから,そうなるでしょう。
WithWindowにMsoTriState.msoFalseを渡してやればよいです。

QVBAで既存のパワポのファイルを開くには?

アクセスやエクセルからVBAで既存のパワポのファイルを開くには?

参照設定をして、
Sub test()
Dim App As PowerPoint.Application
Dim MyFileName As String

Set App = CreateObject("PowerPoint.Application")

MyFileName = CurrentProject.Path & "サンプル.ppt"
App.Visible = True

Set App = Nothing
End Sub

を実行すると、パワポの空のアプリケーション開きますが肝心のファイルが開きません。

開く方法を教えてください。

Aベストアンサー

ExcelファイルやAccessファイルと
パワーポイントのファイルが同じフォルダにあるとして
Accessなら、CurrentProject.Path
Excelなら、ThisWorkbook.Path
でフォルダ名までが得られますので、それに \ を付け足して
CurrentProject.Path & "\" & "サンプル.ppt"

パワーポイントに参照設定を行っているのですから
CreateObjectせずに
Sub PPTopen()
Dim pp As New PowerPoint.Application
pp.Presentations.Open ThisWorkbook.path & "\" & "サンプル.ppt"
以下省略
で。
開くだけで、その後はVBAでパワーポイントを操作しないのであれば
Shell ("explorer.exe" & Chr(32) & ThisWorkbook.path & "\" & "サンプル.ppt"
↑読み取り専用で開かれました。当方 Office2010 の場合
↓PPTファイルをダブルクリックで開いた状態
CreateObject("shell.application").shellexecute ThisWorkbook.path & "\" & "サンプル.ppt"
とかでも。

ちなみにパワーポイントは数年来使ったことはありませんので
これ以上のことはご勘弁ください。

ExcelファイルやAccessファイルと
パワーポイントのファイルが同じフォルダにあるとして
Accessなら、CurrentProject.Path
Excelなら、ThisWorkbook.Path
でフォルダ名までが得られますので、それに \ を付け足して
CurrentProject.Path & "\" & "サンプル.ppt"

パワーポイントに参照設定を行っているのですから
CreateObjectせずに
Sub PPTopen()
Dim pp As New PowerPoint.Application
pp.Presentations.Open ThisWorkbook.path & "\" & "サンプル.ppt"
以下省略
で。
開くだけで、その後はVBAでパワーポイント...続きを読む

QExcelからPowerPointへ画像を貼り付ける作業を簡素化

Excelの2つのファイル(東西、南北)から、PowerPointの1つのファイル(「一覧」)へ画像を貼り付ける作業がよくあるのですが、手順を簡素化するアイディアは有りませんでしょうか?
貼り付ける目的は、画像が重たい(Excel30000行分x10系列)ので、軽くするため&東西と南北を並べて一覧にするためで、

グラフをPowerPointに「形式を選択して貼り付け>拡張メタファイル」し、
→それをすぐ切り取って、PowerPointに「形式を選択して貼り付け>png」します

が(1回目の変換ではpngが選べない)、この手順は業務命令で指示されているので、変えられません。(私自身は二度変換する意味自体を良くわかっていませんが、それはこの質問と直接関わりありません)

これをグラフ40枚分行うのですが、自動化するか(マクロの組み方は私は知りません)、pngへ一括変換・一発変換する方法はありませんか?(現状、1枚当たりに相当な時間がかかっています。)
XPでExcel2003で、PowerPointも2003だと思います。

Aベストアンサー

補足ありがとうございました。

具体的に書いていただき、回答するに励みになりました。

どうも PP のグラフィックは美しくありません。Excel や Word と比較してそう思います。
経験からアドバイスすると Excel のグラフを最もきれいに、かつ軽量にPP に貼り付けるには、

  1. Excel で次の VBA を実行し、グラフをピクチャー(ここでは拡張
    メタファイル)としてコピーする

    ActiveChart.CopyPicture xlScreen, xlPicture

  2. PowerPoint にそのままで貼り付け

という手順が良いと思います。PP 側で「形式を選んで・・・」で拡張メタファイルにしても画質が明らかに落ちてます。

 # Excel2003、2007 ではわかりませんが。

下記は、アクティブブック内にある全てのグラフを PP に貼り付けます。

もともとのデータが大きいみたいですから、ある程度時間はかかるでしょう。とりあえず、お試しを。

' // 標準モジュール

Sub XLグラフをPPに貼り付け()

  ' // グラフウインドウとなっているものは対象外です。

  Dim ppApp    As Object ' PowerPoint.Application
  Dim ppPst    As Object ' PowerPoint.Presentation
  Dim ppSld    As Object ' PowerPoint.Slide
  Dim Sh      As Worksheet
  Dim Obj     As Object
  Dim iCount    As Integer
  Dim sngPosOffset As Single
  Dim i      As Long
  
  ' // PowerPoint(以下PP) 定数
  Const ppLayoutBlank = 12
  Const ppPasteEnhancedMetafile = 2
  
  ' // PP 起動
  On Error Resume Next
  Set ppApp = CreateObject("PowerPoint.Application")
  If ppApp Is Nothing Then Err.Raise 1000, , "PowerPoint cannot be started."
  On Error GoTo Err_
  
  ' // PP を表示する
  ppApp.Visible = True
  ' // PP 新規プレゼンテーション作成
  Set ppPst = ppApp.Presentations.Add(WithWindow:=True)
  ' // PP 新規スライド挿入
  Set ppSld = ppPst.Slides.Add(Index:=1, _
                 Layout:=ppLayoutBlank)
  ' // XL 処理グラフ数カウンタ
  iCount = 0
  ' // PP グラフ貼り付け位置初期値
  sngPosOffset = 0
  
  ' // XL グラフの貼り付け開始
  For Each Sh In ActiveWorkbook.Worksheets
    For i = 1 To Sh.ChartObjects.Count
      ' // XL グラフを Picture 形式でコピー
      Sh.ChartObjects(i).CopyPicture xlScreen, xlPicture
      ' // PP 貼り付け
      ppSld.Shapes.Paste
      ' // PP グラフ位置・サイズ補正
      With ppSld.Shapes(i)
        .LockAspectRatio = msoTrue
        .Top = sngPosOffset
        .Left = sngPosOffset
        .Height = .Height * 0.5   ' // 50%縮小
      End With
      ' // PP 次の貼り付け位置オフセット
      sngPosOffset = sngPosOffset + 20
      ' // XL 処理グラフ数カウンタ
      iCount = iCount + 1
    Next i
  Next Sh
  If iCount = 0 Then ppApp.Quit
  MsgBox CStr(iCount) & "枚のグラフを処理しました", vbInformation
  
Bye_:
  On Error GoTo 0
  Set ppApp = Nothing: Set ppPst = Nothing
  Set ppSld = Nothing: Set Sh = Nothing
  Exit Sub
Err_:
  MsgBox Err.Description, vbCritical
  Resume Bye_
End Sub

補足ありがとうございました。

具体的に書いていただき、回答するに励みになりました。

どうも PP のグラフィックは美しくありません。Excel や Word と比較してそう思います。
経験からアドバイスすると Excel のグラフを最もきれいに、かつ軽量にPP に貼り付けるには、

  1. Excel で次の VBA を実行し、グラフをピクチャー(ここでは拡張
    メタファイル)としてコピーする

    ActiveChart.CopyPicture xlScreen, xlPicture

  2. PowerPoint にそのままで貼り付け

という...続きを読む

QPPTのコマンドボタンがクリックできません

 今日は、質問させて頂きます。どうぞよろしくお願いいたします。
 環境:Win7 + PPT2007 でございます。

 コントロールのテキストボックスとコマンドボタンを配置致しましたが、
テキストボックス内に記入できる状態にできません。
(コマンドボタンも押せる状態にできません。。。)

 Excelですと、コマンドボタンの場合
・コマンドボタン右クリック
・→マクロ登録
としてやると、コマンドボタンを押せる状態になると思います。
また、テキストボックスの場合
・「デザインモード」ボタンを解除
してやると、テキストボックス内に記入できる状態になると思います。

 しかしPPT2007の右クリックメニューにマクロ登録項目がございません。
 そこで、
・コマンドボタンをダブルクリック
・→Private Sub CommandButton1_Click()を作成
といたしましたが、それでもまだコマンドボタンを押せる状態になってくれません。
「デザインモード」ボタンも見当たりませんし。。。

 これらを使える状態にするには、どのようにすべきでございましょうか???
もしお詳しい方がいらっしゃいましたら、どうぞよろしくお願いいたします。

 今日は、質問させて頂きます。どうぞよろしくお願いいたします。
 環境:Win7 + PPT2007 でございます。

 コントロールのテキストボックスとコマンドボタンを配置致しましたが、
テキストボックス内に記入できる状態にできません。
(コマンドボタンも押せる状態にできません。。。)

 Excelですと、コマンドボタンの場合
・コマンドボタン右クリック
・→マクロ登録
としてやると、コマンドボタンを押せる状態になると思います。
また、テキストボックスの場合
・「デザインモード」ボタン...続きを読む

Aベストアンサー

2007版、2010版のコントロールはActiveXコントロールのほうです。
2003版までと異なり、2007版、2010版では「マクロの記録」機能がなくなりました。
ほとんどなんでもアニメ機能など一般機能だけでできてしまいます。

もともと昔からActiveXコントロールには「マクロの記録」機能はありません。スライドに配置してダブルクリックするとコード記述画面(VBE)に入れます。このイベントプロシージャ内で、または他のイベントプロシージャ内で自分でコードを書いていくことになります。「デザインモード」はVBEで使えます。

 あるいは、VBEでマクロ(VBAプログラム)を書いておけば
スライド上から、ご希望のことが可能になります。
・図形や図を配置し、選択状態のままにします。
 ↓
・「挿入」リボンにある「動作」を開きます。
 ↓
マウスのクリックかマウスの通過で、マクロあるいはPCにあるプログラムを実行できます。

QPowerPoint VBA 画像のサイズ

こんにちは。

PowerPoint2007 VBAで今選択している画像のサイズを
指定のサイズに変える方法を教えていただけないでしょうか。
出来ればコードも書いていただけると嬉しいです

MSDN等調べれば出てくるかとも思ったのですが、
VBA自体をExcelで少し触った程度なので分かりませんでした。

よろしくお願いします。

Aベストアンサー

1個づつでもよければ下記でできます。
WindowとslideがわかればあとはExcelと同じです。

Sub test()
Dim w As Single
Dim h As Single

w = 200
h = 200
With ActiveWindow.Selection
With .SlideRange.Shapes(.ShapeRange.Name)
.Width = w
.Height = h
End With
End With

End Sub

QVBAでPowerPointからExcelにデータを抽出する

大量のPowerPointファイルに、それぞれオブジェクトがあり、そのオブジェクトの内容をVBAでExcelに書き出したいのですが、可能でしょうか?
具体的にはPowerPointにテキストボックスがあり、その文章をExcelのセルに書き出したいのです。
どのようにコーディングすればいいでしょうか?
できればExcelVBAでできれば、うれしいです。
OSはXPで、Office2003です。
よろしくお願いします。

Aベストアンサー

こんばんは。

> どのようにコーディングすればいいでしょうか?
ご自分でどこまでできてます?

> VBAでExcelに書き出したいのですが、可能でしょうか?
可能です。適当に書いたものですが下記のような感じとか。

注意点は、Shape のインデックス順の抽出になります。レイアウト通りの
順番で抽出できるとは限りません。レイアウト通りと思えば、非常に
面倒だと思います。(※この点の解決案は後述の参考 URL 参照)

なお、私なら多分外部ツールと組み合わせますよ。

[xdoc2txt] - PDF,WORD,EXCEL,一太郎などからテキストを抽出
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html

この関連で Web 検索するとこんな記事がありました。

[パワーポイントからテキストを抽出]
http://www.ctrans.org/gobi/1156579633

ご参考までに。

' // フォルダ内の *.ppt ファイルからテキストを抽出する
Sub OutputText()

  Dim ppApp  As Object ' // PowerPoint.Application
  Dim ppPre  As Object ' // PowerPoint.Presentation
  Dim ppShp  As Object ' // PowerPoint.Shape
  Dim ppSld  As Object ' // PowerPoint.Slide
  Dim sPath  As String
  Dim sFnam  As String
  Dim i    As Long
  Dim sh   As Worksheet
  
  ' // 処理対象のフォルダパス
  sPath = "C:\"
  
  ' // 初回ファイル検索
  sFnam = Dir$(sPath & "\" & "*.ppt")
  If Len(sFnam) = 0 Then
    MsgBox "*.ppt が見つかりません", vbInformation
    Exit Sub
  End If
  
  On Error GoTo Err_
  
  ' // PowerPoint起動
  Set ppApp = CreateObject("PowerPoint.Application")
  ppApp.Visible = True
  ' // 出力シート作成
  Set sh = Workbooks.Add.Sheets(1)
  With sh.Range("A1:D1")
    .Font.Bold = True
    .Value = Array("Filename", "Slide Number", "Shape Name", "Text")
  End With
  
  ' // リスト開始行番号
  i = 2
  ' // *.ppt が見つからなくなるまでループ
  Application.ScreenUpdating = False
  While Len(sFnam) > 0
    ' // Presentation を開き、全ての Slide -その中の全ての Shape について
    ' // テキストがあればセルに出力する
    Set ppPre = ppApp.Presentations.Open(Filename:=sPath & "\" & sFnam, _
                       ReadOnly:=True)
    For Each ppSld In ppPre.Slides
      For Each ppShp In ppSld.Shapes
        If ppShp.HasTextFrame Then
          sh.Cells(i, "A").Value = sFnam
          sh.Cells(i, "B").Value = ppSld.SlideNumber
          sh.Cells(i, "C").Value = ppShp.Name
          sh.Cells(i, "D").Value = Replace$(ppShp.TextFrame.TextRange.Text, _
                           vbCr, vbLf)
          i = i + 1
        End If
      Next
    Next
    ' // Presentation を閉じ、次のファイルを検索
    ppPre.Close
    Set ppPre = Nothing
    sFnam = Dir$()
  Wend
  ppApp.Quit
  sh.Columns.AutoFit
  sh.Rows.AutoFit

Bye_:
  Set ppApp = Nothing
  Set sh = Nothing
  Exit Sub
Err_:
  MsgBox Err.Description, vbCritical
  Resume Bye_
End Sub

こんばんは。

> どのようにコーディングすればいいでしょうか?
ご自分でどこまでできてます?

> VBAでExcelに書き出したいのですが、可能でしょうか?
可能です。適当に書いたものですが下記のような感じとか。

注意点は、Shape のインデックス順の抽出になります。レイアウト通りの
順番で抽出できるとは限りません。レイアウト通りと思えば、非常に
面倒だと思います。(※この点の解決案は後述の参考 URL 参照)

なお、私なら多分外部ツールと組み合わせますよ。

[xdoc2txt] - PDF,WORD,EX...続きを読む

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

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

--------------------
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"は見つからないというエラーが出てしまう。


表をエクセルからコピーして、パワーポイントへ位置を指定して張り付けるかもしくは貼り付けた後に移動ができるかを実現したい。
何かいい方法はありませんか?パワーポイントへエクセルからグラフを貼り付けた場合はうまくいきました。
また。パワーポイントの表の名前のつけ方には規則性があるのでしょうか。規則性があれば、それに則ってコードをかけるのですが・・・。

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

--------------------
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 ...続きを読む

Aベストアンサー

書き忘れました。
下のコードにして、名前が変更されていることも確認してください。
オブジェクト名: hyou1 になると思います。

 With pptPre.Slides(page).Shapes
  .Paste
  With .Item(.Count)
   .Name = "hyou1"
   .Top = picPos_tate
   .Left = picPos_yoko
   MsgBox "オブジェクト名: " & .Name
  End With
 End With

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング