ExcelデータをPPTの指定したテキストボックスに自動エクスポートも

このQ&Aのポイント
  • ExcelデータをPPTのテキストボックスに自動でエクスポートもしくはインポートする方法を教えてください。
  • Excelの1列が1レコードのデータを、1レコード=1スライドとしてPPTに自動で入れたいです。
  • VBA初心者ですので、具体的な操作方法を教えて頂けると助かります。
回答を見る
  • ベストアンサー

ExcelデータをPPTの指定したテキストボックスに自動エクスポートも

ExcelデータをPPTの指定したテキストボックスに自動エクスポートもしくはインポートしたい 1列が1レコードになっているExcelデータを、 1レコード=1スライドで、 指定したセルデータをPPTの指定したテキストボックスに入れて Excelのレコード数だけスライドが自動でできるようにしたいのですが 何か方法はありますか。 VBAは初心者ですよろしくお願いします。 例 <Excel>   A   B   C    1 田中 神奈川  A型  2 山田 東京 B型   ・   ・   ・ <PPT> スライド1  テキストボックス1 に「田中」と表示  テキストボックス2 に「神奈川」と表示  テキストボックス3 に「A型」と表示  スライド2  テキストボックス1 に「山田」と表示  テキストボックス2 に「東京」と表示  テキストボックス3 に「B型」と表示  ・  ・  ・

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

powerpointのVBAを初めて触ってみました。 2007では機能が無くなってしまったそうですが、当方2000なので自動記録させていじってみました。 最初は、Excel VBEで、Microsoft powerpoint ?.? object library に参照設定して、Dim PPTPre As PowerPoint.Presentation といった形で宣言する方が、インテリセンスでメンバーが表示されるので、楽でしょう。 すでに開いているPowerPointのPresentationに対して、スライド+テキストボックスを付け加えるコードです。実際は、既存のひな形を複写して、指定のテキストボックスに入力したいのかもしれませんが、ご自分で自動記録してトライするか、達人の回答をお待ち下さい。 Sub test() Dim PPTApp As Object, PPTPre As Object, PPTsld As Object, PPTshape As Object Dim i As Long, j As Long '行数はアレンジなさってください。 For i = 1 To 10 Set PPTApp = GetObject(, "PowerPoint.Application") Set PPTPre = PPTApp.ActivePresentation 'pplayoutblank=12 Set PPTsld = PPTPre.Slides.Add(PPTPre.Slides.Count + 1, 12) For j = 1 To 3 'msoTextOrientationHorizontal=1 Set PPTshape = PPTsld.Shapes.AddTextbox(1, 100, 120 * j, 400, 100) PPTshape.TextFrame.TextRange.Text = ActiveSheet.Cells(i, j).Value With PPTshape.TextFrame.TextRange.Font .Size = 40 End With Set PPTshape = Nothing Next j Next i End Sub

kkk3838
質問者

お礼

ありがとうございました。 返信遅くなり申し訳ありませんVBA初心者のため頑張って 解読をしていたのですが、今だ理解ができず…。 やはり初心者にはきびしいんですかね… 引き続き頑張って↑解読してみます

関連するQ&A

  • PPTのVBA 全てのテキストボックスの行間を最小

    【PPTのVBA 全てのテキストボックスの行間を最小に】  今晩は、質問させていただきます。どうぞよろしくお願いいたします。 PPT2007でございます。  手元に大量にあるPPTファイル群のテキストボックスの行間が全て広いため、 全て一括で小さくしてしまいたい次第でございます。 もしこれを手作業でやりますと、テキストボックスをアクティブにする→右クリック →「段落」→「段落前」を0に。 となり時間がかかりますため、VBAでどうにかしたい次第でございます。  しかしネットで検索しても出てこず、 また上記操作を自動記録しようといたしましても記入されません。 (PPT2007には自動記録が無いため、excel、wordでトライいたしましたが、無理でございました。。。) 一個のテキストボックスの操作方法さえ分かれば後は、 For each スライド   For each テキストボックス   :   :   Next Next みたいな感じで出来ると思うのでございますが。。  もしお詳しい方がいらっしゃいましたら,お教えいただけないでしょうか。 どうぞよろしくお願いいたします。

  • ExcelのデータをPPTにエクスポートしたいです(VBA初心者)

    ExcelのデータをPPTにエクスポートしたいです(VBA初心者) ネット検索などをして、下記の手順でエクスポートすることまではできたのですが、 これだと全てのセルデータがPPTの1つのテキストに入ってしまいます。 希望しているのは、セルごとにエクスポート先の テキストボックスを分けたいのですが、 ここから先が分かりません。 どなたかご教授いただけませんか。 よろしくお願いします。 <Excel> A B C D E 1 会社名(1) 住所(1) 担当者(1) 2 会社名(2) 住所(2) 担当者(2) 3 会社名(3) 住所(3) 担当者(3) <PPT> ・Sheet1 テキストボックス1   会社名(1) テキストボックス2   住所(1) テキストボックス3   担当者(1) ・Sheet2 テキストボックス1   会社名(2) テキストボックス2   住所(2) テキストボックス3   担当者(2) --------------------------------------- Sub ExceltoPowerPoint() Dim objRng As Range Dim varRng As Variant Dim intSNum As Integer Dim i, j As Integer Dim PpApp As PowerPoint.Application Dim PpPrs As PowerPoint.Presentation Set objRng = Worksheets("Sheet1").Range("A1:C5") varRng = objRng.Value Set objRng = Nothing Set PpApp = CreateObject("PowerPoint.Application") Set PpPrs = PpApp.Presentations.Add PpApp.Visible = True intSNum = 1 For i = 1 To UBound(varRng, 1) PpPrs.Slides.Add i, ppLayoutBlank PpPrs.Slides(i).Shapes.AddTextbox msoTextOrientationHorizontal, 0, 0, 710, 540 Next For i = 1 To UBound(varRng, 1) For j = 1 To UBound(varRng, 2) With PpPrs.Slides(intSNum).Shapes(1).TextFrame.TextRange If j = UBound(varRng, 2) Then .Text = .Text & CStr(varRng(i, j)) & vbNewLine intSNum = intSNum + 1 Else .Text = .Text & CStr(varRng(i, j)) & vbNewLine End If End With Next Next For i = 1 To UBound(varRng, 1) With PpPrs.Slides(i).Shapes(1).TextFrame.TextRange .Font.NameAscii = "Arial" .Font.NameFarEast = "MS Pゴシック" .Font.NameOther = "Arial" .Lines(1).Font.Size = 10 '1行目 .Lines(2).Font.Size = 30 '2行目 .Lines(3).Font.Size = 20 '3行目 End With Next MsgBox "処理が終了しました。" Set PpPrs = Nothing Set PpApp = Nothing End Sub ---------------------------------------

  • Excelのテキストボックスでフォントの色を変える

    Excel2007を使っています。 テキストボックスのフォントの色を「自動的」に変更するやり方はないでしょうか? 例えばセルのA1に「-1」という数値が入っているとします。 テキストボックスを作ってA1にリンクを張ります。 テキストボックスは「-1」となりますが 数値がマイナスになったら自動的に赤に表示することは可能ですか? セルでは書式設定で「0_ ;[赤]-0 」とすることにより 数値によって自動的に色が変更できますが テキストボックスの中身を自動的に赤にする方法が分りません。 (手動で赤色にする方法は分かります) 宜しくお願いします

  • Excel「テキストボックス」で

    コントロールツールボックス」の中のテキストボックスを使用しています。 変数aと変数bの値を一つのテキストボックスに入れたくて 変数a & 変数b というようにしました。 中身(プロパティでみたところ)はちゃんと入ってるようですが、 表示は変数aと変数bがかぶってしまっています。 これをきちんと表示させるにはどうしたらいいですか? また、このテキストボックス上で、センタリング、右寄せ、均等割付などを行いたい場合は どうしたらいいでしょうか?

  • Excel VBAでpptのアクティブスライド

    Excel VBAで、pptのスライドショー実行中のアクティブスライド番号を取得するコードを教えてください。 編集中のスライド番号を取得する方法は、検索して探し出したのですが、 スライドショー実行中での方法がわかりません。 Excelのセルにある値を、pptのテキストボックスに代入するプログラムを作成したいので、pptのVBAではなく、ExcelのVBAで実現させたいです。

  • テキストボックス

    下記のようにテキストボックス1.2に入れた文字列を 連結した状態でアラートで表示させたいのですが、 スクリプトを教えていただけませんか?? たとえば、テキスト1に[山田]、2に[太郎]と入れた場合はアラートで[山田太郎]と表示されます。 テキスト1 □□□ テキスト2 □□□ ボタン 「表示」 宜しくお願い致します。

  • access vbaのテキストボックスについて

    例えば、sampleというテーブルがあり、そのテーブルは列A,列Bという構成だったとします。データとしては下記のようにします。  A  B 1 a1 b1 2 a2 b2 3 a3 b3 この時、フォーム上にテキストボックス1とテキストボックス2を作成し、コントロールソースにそれぞれsampleテーブルの列A、列Bを指定します。 このとき、3行目のデータ(a3とb3)を表示するときだけテキストボックスを太枠にすることは可能でしょうか? もしくは、他のテキストボックスと見栄え的に変えることは可能でしょうか? よろしくお願いします。

  • テキストボックスのフォントが変わってしまいます。

    PPT2002を使用しています。 テキストボックスで「特殊文字」を半角で挿入すると、 なぜかフォントが全角の日本語フォントになってしまいます。 μ(マイクロ)などのギリシャ文字が入力できず困っています。 また、PPT2000で作成したファイルのテキストボックスの半角フォントもすべ て全角で表示されてしまいます。 何が悪いのかさっぱり分かりません。 よろしくお願いします。

  • テキストボックスがなくなる!?

    更新前処理のイベントプロシージャで、入力すればテキストボックス表示・未入力ならばテキストボックス非表示に設定しました。そのときはうまくいくのですが、いったんフォームを閉じて新たに開けると、入力しているのに元のテキストボックスしか表示されていなくて、でも、レコードのデータは消えてないのです。このほかに設定しないとだめなんですか?

  • テキストボックス デフォルトでフォントを設定したい

    アウトラインにタイトルを入れた際、スライドに表示されるテキストボックスがありますが このテキストボックスのフォントをデフォルトで指定する方法はありますか? 今はサイズが44の黒ですが、 例えばサイズが20の赤にしたい場合は、どのように設定すればいいでしょうか? 一つ一つのスライドのテキストボックスを手作業で治すしかないですか?

専門家に質問してみよう