三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

挨拶・自己紹介:「こんな感じ」や「あの、あの」と活舌の悪い、
三流プログラマーのオッサンです
Ken3三流君へ問い合わせ・連絡先:
[Ken3(管理者)へメッセージを送る], [YouTube動画にコメントを書く]
※↑質問・感想,コード修正・作成依頼など気軽に送ってください。

Excel SUMなどの計算結果をそのままPowerPointのスライドへ書き込む マクロコードを紹介する

Excelのリストからパワポの指定した場所へ、=SUMで計算した数値を表示形式をそのままで一気に流し込む「マクロ」を紹介します。

'ソースコード:

'B2に入力されたPowerPointファイルを開き
'先頭行A5のデータから
'A列:指定ページ 内の B列:オブジェクト に C列:文字列をセットする
Sub パワポに文字列をセットする20230912()

    'PowerPointアプリの起動
    Dim ppApp As Object   'PowerPoint.Application
    Set ppApp = CreateObject("PowerPoint.Application")
    ppApp.Visible = True '可視にする
    DoEvents

    'B2ファイルを開く
    Dim strPPFName As String
    strPPFName = Range("B2")  'B2に記載されたファイルを開きたい
    
    '開く、変数に入れる
    Dim ppセット先 As Object  'PowerPoint.Presentation  'pp:プレゼンテーション
    Set ppセット先 = Nothing '初期化、エラーチェックもかねて
    On Error Resume Next   '↓でSet 取得エラー時に次へ ファイルが開けなかった時
    Set ppセット先 = ppApp.Presentations.Open(strPPFName) '開く
    DoEvents
    On Error GoTo 0  'エラーを元に戻す※これを忘れると、デバッグ時にハマるから注意
    '↑単純に、.Open "ファイル名" で開いただけです
    If ppセット先 Is Nothing Then '↑上で開けたか?
        'openエラーの時、開けなかったことを知らせる
        MsgBox strPPFName & "が開けません確認してください", vbExclamation
        Exit Sub  'んっ?空のppAppが残るか、これだと・・・
    End If

    'A列:指定ページ 内の B列:オブジェクト に C列:文字列をセットする
    Dim p As Integer, y As Integer   'pページ、y行
    Dim strShpName As String  'シェイプの名前
    
    Dim ppShape As Object  'As PowerPoint.Shape パワポのシェイプ、テキスト、図形ほか
    
    y = 5  '4行目が見出しなので、5行目 A5からデータをセットする
    While Len(Cells(y, "A")) <> 0 'A列の文字数が0以外の間ループ、A列がなくなるまで
        
        p = Cells(y, "A")          'A列からスライド番号(ページ番号)
        strShpName = Cells(y, "B") 'B列から オブジェクトの名前
        
        Set ppShape = Nothing  '初期化
        On Error Resume Next  '取得エラー時に次へ行く
        'pページのスライド内のシェイプ A列のページ と B列の名前を使う
        Set ppShape = ppセット先.Slides(p).Shapes(strShpName)
        On Error GoTo 0  'エラーを元に戻す※これを忘れると、デバッグ時にハマるから注意
        
        If ppShape Is Nothing Then  '名前のエラーチェック
            MsgBox p & "ページ:" & strShpName & "が見つかりません、確認してください"
            Exit Sub
        End If
        
        'やっと文字列 C列の値をセット .Value ではなく .Textを使用してみた
        ppShape.TextFrame.TextRange.Text = Cells(y, "C").Text  'C列の文字列をセット
        
        y = y + 1   '次の行 データへ
            
    Wend
    
   
    MsgBox "処理終了?確認してね"

End Sub

【結論:63箇所のコピペを1秒で!Excel×パワポの自動連携はこれで決まり】

毎月のレポート作成、手作業で消耗していませんか?
この動画では、Excelのリストからパワポの指定した場所へ、数値を一気に流し込む「マクロ」を実演解説しています。

お急ぎの方は、解決策へ直接ジャンプしてください!

1. 【一番のポイント】Excelの見た目をそのまま転記!「.Text」の魔術
タイムライン: 18:10 https://www.youtube.com/watch?v=VUw8a-xW55w&t=1090
内容: 単なる数値ではなく「150人」といった表示形式を維持して転記するコツ。

SUMなどの計算結果をそのままスライドへ書き込む

2. 【見どころ】自動化の第一歩!「オブジェクト名」の調べ方
タイムライン: 01:49 https://www.youtube.com/watch?v=VUw8a-xW55w&t=109
内容: パワポ側のどの枠にデータを入れるか、名前を特定する手順。

3. 【実践】複数ファイル・大量箇所への応用
タイムライン: 26:34 https://www.youtube.com/watch?v=VUw8a-xW55w&t=1594
内容: 複数のファイルやページを連続で更新する実演。63箇所の更新も怖くありません。

4. 【応用】SUM関数と固定文字を「合体」させて転記
タイムライン: 34:27 https://www.youtube.com/watch?v=VUw8a-xW55w&t=2067
内容: 「計算結果 + 文字」を自動生成して流し込むテクニック。

5. 【正直にお伝えします:注意点】
・複雑な書式(一部だけ色を変える等)は上書き時に消える可能性があります。
・オブジェクト名の不一致によるエラー対処法は 09:28 をチェック!


動画をチェックして、あなたの業務を自動化しましょう!

#ExcelVBA #PowerPoint自動化 #時短術 #コピペ卒業

www.youtube.com


質問・感想・クレームなど、
気軽にコメント欄に書いてもらえるとうれしいです。

[Googleフォームにコメントを残す]
↑質問・コメントの入力フォームです、気軽に書いてください


フッター:最後にKen3Videoの動画一覧を紹介します

YouTubeにアップした動画です。他の動画を一瞬でも見てもらえるとさらに嬉しいです。
再生リスト:[三流君Ken3の最新動画]←リストの一覧形式で表示する


また、ブログを見に来てくださいね。ではまたぁ~