• 締切済み

excel VBA

昨日VBAをさわり始めた超初心者です。質問ですが、excelからパワーポイントのシート内を削除の仕方と、テキスト追加方法を教えて下さい。パワーポイントは既存であり、テキスト内容はexcelのセル内の文字で、変数に入れることができました。まだまだ無知なので、ご教授下さいますようよろしくお願いします。

みんなの回答

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

以下の例を参考にしてください。 'Excel VBAで PowerPointへテキストを挿入及びExcelのセル内容設定 Sub EXCEL_PowerPoint_TEXT追加()   Dim objPw As Object   'Object型   '   With ActiveSheet     'PPのオブジェクトを作る     Set objPw = CreateObject("PowerPoint.application")     objPw.Visible = True     'PowerPointファイルをオープン     objPw.Presentations.Open ("C:\TEST.ppt")     '     'パワーポイントのシート内のObjectの削除     For wI = 1 To objPw.Presentations(1).Slides(1).Shapes.Count       objPw.Presentations(1).Slides(1).Shapes(1).Delete     Next     '     'テキスト追加1→文字列挿入     objPw.Presentations(1).Slides(1).Shapes.AddTextbox(msoTextOrientationHorizontal _     , 100, 100, 200, 50).TextFrame.TextRange.Text = "図1"     'テキスト追加2→Excelのセル(1,A)の内容設定     objPw.Presentations(1).Slides(1).Shapes.AddTextbox(msoTextOrientationHorizontal _     , 100, 200, 200, 50).TextFrame.TextRange.Text = .Cells(1, "A")   End With End Sub 'Excel で PowerPoint をオープンして印刷する例 Sub EXCEL_フォルダー内印刷ppt()   Dim ff As Office.FoundFiles   Dim p As Variant   With Excel.Application.FileSearch     .LookIn = "C:\"     .Filename = "*.ppt"     If .Execute() > 0 Then       Set ff = .FoundFiles       With CreateObject("PowerPoint.Application")         For Each p In ff           With .Presentations.Open(CStr(p))             .PrintOut             .Close False           End With         Next         .Quit       End With       Set ff = Nothing       MsgBox "全プレゼンテーションの印刷が終わりました。"     Else       MsgBox "このフォルダにPowerPointプレゼンテーションはありません。"     End If   End With End Sub

関連するQ&A

  • エクセル VBA パワーポイントに値を貼り付けしたい

    エクセルのVBAで、エクセルのあるセルの値を、 パワーポイントにテキストとして貼り付けしたいのですが どのように記述すればよいでしょうか。 よろしくお願い致します。

  • Excel VBAが徐々に遅くなる

    エクセルのVBAであるテキストファイルを読み込み、計算してCSVで吐き出すというプログラムを組んでいます。 質問はその計算スピードが徐々に遅くなってしまうということです。 計算し始めは大体1テキストファイルを読み込んでCSVに吐き出すのに1分くらいで済むのですが、3,4時間回してると1テキストファイル⇒CSVに2,30分かかってしまいます。 シートが増えていたりグラフを追加したりはしていません。 また、VBAの変数もできるだけ初期化するようにしてます。 読み込んでいくテキストファイルのサイズもそんなに変わらないです。 何か考えられる原因はないでしょうか? ご教授宜しくお願いします。

  • ExcelのVBAについて。

    ExcelのVBAについて。 画像のようなコードを利用してセルに入力時の日付時間を自動的に付加させたいのですが、、 VBA初心者な為に上手くいきません。 コード自体はサイトのを切り貼りして使えるのですが、これ以上の応用例に行き着けません。目的としては、データベース的に、あと入力数値から特定文字を抜き出して変数を当て嵌め文字列の語呂を当てます。様式はまだ作成中ですが、ある種の図表化してプリントアウトまでしたいと思っています。 何が上手くいかないか、まず自動的に付加させる所は何となく出来ているので、これをシート1とした場合に、シート2に図表化した転記内容を構成し、、シート1入力、シート2表示、またシート1A3セルに戻るというコードにしたいです。 この記述は不味いとかこうこうああした方が良いというアドバイスや指摘をお願いします。 よろしくお願いします。

  • excel vba シートの追加

    excel vba にてシートを以下の条件で追加したいのですが、 両方を同時に行うことができません。ご教授下さい。 ・ シート名を、”新シート”にしたい。 ・ 既存シートAAA.sheetの後ろに、追加したい。 以上、宜しくお願い致します。

  • エクセルVBAでの変数のスコープ

    基本的なことなのですが、教えて下さい。 当方、PHPやjavascriptを中心にプログラムしてきたのですが、 今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。 いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、 VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。 そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。 エクセル+VBAである程度の規模のプログラムを作る際、 変数のスコープはどのように使い分けるのが良いのでしょうか? すみませんが、ご教授の程、よろしくお願いします。

  • エクセルvba初心者です・・・

    エクセルvba初心者です・・・ シート1にあるひとつのセルをコマンドボタンを押した時にそのセル内の文字列をシート2にかいていくようなプログラムをつくりたいです。 例えば シート1のセルに文字入力→”田中”→登録ボタンおす→シート2のセルA1にはいる シート1のセルに文字入力→”竹山”→登録ボタンおす→シート2のセルA2にはいる                  ・                  ・                  ・ というようになるコードわかる方いたら教えてください。おねがいします。

  • エクセル VBA ' " ! & の使い方

    エクセル VBA ' " ! & の使い方 VBAを独学で勉強している、超初心者です。 同じシート内でのVBAを作るのはなんとなくできるようになったのですが、別のシートのデータを参照したいときなど、(シート名を変数にしています)うまく動作できません。 ' " ! & の使い方をやさしく解説してください。 よろしくお願いします。

  • エクセルのVBA

    エクセルのVBAを教えて頂きたいのですが。 Sheet1にテキストボックスが200個張り付いています。 テキストボックスの番号は1番から200番までです。 1つのテキストボックスに1文字のみ表記されています。 このような状態で、テキストボックスの文字が「(」であるものを見つけたら、以後、「)」を見つけるまでその間の文字の色を赤にするVBAを教えてもらいたいのですが。(「(」「)」も赤にします) あいうえおかきくけ(こさしす)せそたちつてとなにぬねの(はひふ)へほ 上記の場合は (こさしす)(はひふ) が赤になります。 宜しくお願いします。

  • VBA(エクセル)でコピー+文字を足す

    エクセルのVBAを使ってシート1の指定セルに打った内容を、マクロを実行するとシート2の指定セルに入力できるようにしました。 プログラムは s.Cells(r, 1).Copy Sheets("Sheet2").Range("A1") な感じです。 ここに文字を追加して出力したいのですが、どうすればいいのでしょうか? シート2にコピー出力される内容に、 『成績 第○位』という文字を追加して出力したいのです。つまり○の部分にシート1で打った内容(例11)を、 シート2では(例『成績 第11位』)という内容を表示したいのですが、どのようなプログラムを追加すればよいのでしょうか? 本当に困っています。どなたか助けてください。

  • エクセルVBAで出来ますか??

    はじめまして。 私の質問を読んで下さりありがとうございます。 上司にエクセルで少々複雑な?仕組みを作るように指示されたのですが、私自身はエクセルに詳しくはなく、社内にも詳しい人がいなくて困っています。 「Excel VBA パーフェクトマスター」という本を購入して勉強を始めたのですが、あまりに情報が多すぎてどこを参考にすればよいのかすら分かりません・・・。 来週末までに作らないといけないため休日返上でお仕事しながら勉強していますが、さっぱり分からなくて泣きそうです・・。 エクセルVBAに詳しくて親切な方がいらっしゃいましたら、無理のない範囲で構いませんので、どうか教えて頂けないでしょうか。宜しくお願い致します。 前置きが長くなってしまいましたが、具体的には以下のような処理はどうすれば良いのかが分かりません。 (1) 「Sheet1」のセル[A2]をダブルクリックすると「Sheet3」が表示される。 (2) 「Sheet3」のセル[D5]をダブルクリックすると「Sheet2」のセル[C2]の値(文字か数字)が「Sheet1」のセル[A2]と「Sheet4」のセル[B5]に表示され、更に「Sheet5」のセル[F10]の数値が「Sheet1」のセル[N5]に表示される。 (3) 上記の一連の処理が完了すると「Sheet1」が表示される。(「Sheet1の画面に戻る) 以上のような処理を複数組み合わせればできそうなのですが、このような事はエクセルVBAで出来るでしょうか? (私には出来るのか出来ないのかすら分かりません。命令した上司も分かってないと思います。) 出来るか出来ないかだけでも結構なので、どうか教えてください。 もし可能なら、具体的なアドバイスを頂けると、とても助かります。 どうか宜しくお願い致します。

専門家に質問してみよう